Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Refrescar div en ajax con javascript

Estas en el tema de Refrescar div en ajax con javascript en el foro de Frameworks JS en Foros del Web. Hola todos de foros del web, tengo un chat que está hecho en php con ajax y mysql, justamente me han colaborado los usuarios de ...
  #1 (permalink)  
Antiguo 28/07/2009, 13:28
(Desactivado)
 
Fecha de Ingreso: enero-2008
Mensajes: 272
Antigüedad: 16 años, 10 meses
Puntos: 1
Refrescar div en ajax con javascript

Hola todos de foros del web, tengo un chat que está hecho en php con ajax y mysql, justamente me han colaborado los usuarios de foros del web, estoy muy agradecido por su apoyo muchas gracias todos.

El chat ya esta funcionado, pero hay problema al momento de refrescar los divs : div de la sala de chat, div de lista de usuarios que están en el chat
Al comienzo todo anda bien, pero cuando empiezan a conversar varias personas se cuelga la ventana emergente o el navegador o se hace muy lento
En la sala se muestra 255 caracteres de conversación máximo
Por favor ayúdenme a solucionar este problema de que se cuelga el explorador o se pone muy lento

Aquí les paso la dirección donde está el chat, para que ustedes mismo prueben, se darán cuenta del problema.
Muchas gracias
http://www.elsitiodenegocios.com

Aquí les paso el script AJAX
Código HTML:
function objetoAjax(){
	var xmlhttp=false;
	try{
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	}catch(e){
		try{
		   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}catch(E){
			xmlhttp = false;
  		}
	}

	if(!xmlhttp && typeof XMLHttpRequest!='undefined'){
		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}

function ActualizarEstadoUser()
{
		divContenido = document.getElementById("actualizar_estado_user");
		var ajax=objetoAjax();
		ajax.open("POST", "../clientes/actualizar_estado_user.php", true);
		ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		ajax.send(null);
		ajax.onreadystatechange=function()
		{
			if (ajax.readyState==4)
			{  
				divContenido.innerHTML=ajax.responseText;
			}
		}
}
function enviarMensaje()
{
	var usu=document.getElementById('idusuario');
	var usu=usu.value;
	var men=document.getElementById('texto');
	var men=men.value;
	
	ajax=objetoAjax();
	ajax.open("POST", "chat.php",true);
	ajax.onreadystatechange=function() {
		if (ajax.readyState==4) {
			consultaMensajes();
			LimpiarCampoTexto();
		}
	}
	ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	ajax.send("usuario="+usu+"&mensaje="+men)
}

function consultaMensajes()
{
	
		divContenido = document.getElementById('chatList');	
		var usu=document.getElementById('idusuario');
		var nusuario=document.getElementById('nusuario');
		var usu=usu.value;
		var nusuario=nusuario.value;
		
		var ajax=objetoAjax();
		
		ajax.open("POST", "consulta.php", true);
		
		ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		ajax.send("usuario="+usu);
		ajax.onreadystatechange=function()
		{
			if (ajax.readyState==4)
			{  
				divContenido.innerHTML=ajax.responseText;
			}
		}
	//cada 3 segundos consulta por nuevos mensajes
	setTimeout('consultaMensajes();',3000);
	
}
//Actualiza el la conversación
window.onload = function (){
	consultaMensajes();
	ListaUserSesion();
}


function ListaUserSesion()
{
	    divlist_usuarios = document.getElementById('list_usuarios');			
		var ajax=objetoAjax();
		
		ajax.open("POST", "lista_user_activo_sesion.php", true);
		ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		ajax.send("v="+1);
		ajax.onreadystatechange=function()
		{
			if (ajax.readyState==4)
			{  
				divlist_usuarios.innerHTML=ajax.responseText;
			}
		}
	//cada 3 segundos consulta por nuevos mensajes
	setTimeout('ListaUserSesion();',3000);
}

//Al pulsar tecla ENTER envia el mensaje
function pulsar(e)
{
		var evento=e.keyCode || e.wich;
		if(evento==13)
		{
			enviarMensaje();
			//scrol();
			ListaUserSesion();
			return false;
		}
		return true;
}

function LimpiarCampoTexto()
{
	var men=document.getElementById('texto');
	var men=men.value="";
	document.getElementById('texto').focus(); return;
}

//Control de scroll
//function scrol()
onload=function(){
	//ListaUserSesion();//function para actualizar usuarios de la lista
	setInterval(function(){if(window.parar)return;document.getElementById('chatList').scrollTop=document.getElementById('chatList').scrollHeight},30);
}
SCRIPT HTML
Código HTML:
<body onunload="ActualizarEstadoUser()">
<div id="contenidoweb">
	<div id="cabecera">
		<div id="publicidad"></div>
		<div id="barramenu">
			<div id="logo">
				  <img src="../images/logo.gif" border="0" width="340" height="63" alt="El Sitio de Negocios"/>
			</div>
		</div>
	</div>

<div style="padding-left:10px; padding-left:10px; padding-top:5px;">
<table width="800" border="0" cellspacing="0" cellpadding="0" align="center" >
  <tr>
    <td style="padding-left:0px; padding-top:0px;">
	<div id="chatList" style="overflow:auto; width:600px; height:354px; padding-left:3px; padding-right:3px; border:2px solid; color:#CCCCCC;"  onMouseOver="parar=1" onMouseOut="parar=0"><?php require_once('consulta.php');?>
	</div>
	<div>
			<textarea name="texto" id="texto" rows="1" cols="50" style="width:608px; height:42px;" onKeyPress="pulsar(event);" class="TextoContenido"></textarea>
	
		    <input type="submit" name="Submit" value="Enviar" onClick="javascript:enviarMensaje();">
			  <input name="idusuario" type="hidden" id="idusuario" value="<?php echo $_SESSION['idcliente'];?>">
		  <input name="nusuario" type="hidden" id="nusuario" value="<?php echo $_SESSION['login'];?>">
</div>
	</td>
    <td valign="top" style="padding-top:0px; padding-left:1px; padding-right:0px;">
	
<div id="list_usuarios" style="overflow:auto; width:200px; height:354px; padding-left:3px; padding-right:3px; border:2px solid; color:#CCCCCC;"><?php require_once('lista_user_activo_sesion.php');?></div>
	
	</td>
  </tr>
</table>
<div id="actualizar_estado_user"></div>
</div>
</body> 
  #2 (permalink)  
Antiguo 30/10/2009, 14:45
Avatar de rifarca  
Fecha de Ingreso: enero-2009
Mensajes: 4
Antigüedad: 15 años, 9 meses
Puntos: 0
Sonrisa Respuesta: Refrescar div en ajax con javascript

hoal amigo, bueno viendo a simple vista tu ajax tine un probelma en cuando envias la findo al http ajax.send(null ) debe ser al valro que envias los que debes colocar ahi en este caso esta como para funcionar bien via el metodo get
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 05:21.