Comunidad de diseño web y desarrollo en internet online

respuesta del servidor muy lenta

Citar            
MensajeEscrito el 06 Feb 2012 06:35 pm
hola, muy buenas.

Tengo un evento onkeypress asociado a una función javascript, que me devuelve unos valores de la página try.php en el div "chata".
El problema que tengo es que se demora un poco la respuesta, con lo que es un poco desastre ya que es una sala de chat.

ésta es la función:

Código Javascript :

<script type="text/javascript">
function showUser(str,e)
{
var keycode=e.which?e.which:e.keyCode;
//cuando el usuario pulsa intro
if (keycode == 13)
{
var xmlhttp;
var name="<?php echo $emisor;?>";
if(str=="")
 {
  document.getElementById("txtHint").innerHTML="";
  return;
  } 
if(window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
   {
   if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
     newdiv.innerHTML = "<span style='color: #22bbbb;'>"+name+"</span>:"+" "+xmlhttp.responseText;
    }
   }
var add;
var add=document.createElement("div");
var newdiv=add;
var container;
var container = document.getElementById("chata");
container.appendChild(newdiv);
var chap;
var chap=document.getElementById("txt").value;
xmlhttp.open("GET","try.php",true);
xmlhttp.send();
 
}
}
 


He probado a simplificar no añadiendo el +name+ a la respuesta, pero es lo mismo.
Lo que hago es ir poniendo las respuestas una detrás de otra, creando un nuevo elemento, como en una sala de chat.

He probado tb, poniendo algo muy sencillo en try.php, un simple echo para que no haga falta hacer llamada a la base de datos, pero sigue siendo lento.


Agradecería cualquier ayuda, a ver si puedo conseguir que la respuesta sea inmediata.

Gracias, un saludo.

Por sharinglanguage

21 de clabLevel



 

chrome
Citar            
MensajeEscrito el 06 Feb 2012 08:05 pm
¿Lento respecto de qué?

Veo en el código que cada vez que se presiona enter se hace una petición Ajax... ¿para actualizar qué exactamente?.

Te comento que si la conexión entre cliente y servidor es lenta, no hay nada que puedas hacer al respecto.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 06 Feb 2012 08:20 pm
DriverOp, muchas gracias.
Creo que he encontrado el motivo. Pensaba que estaba relacionado con el script o el servidor, pero me parece que es por el hecho de que tengo varios eventos que se disparan a la vez cada vez que el usuario pulsa enter, no sólo esta función.
Los he anulado y parece que va bien.

Así que buscaré otra manera de lanzar esos eventos.

Respecto a tu pregunta: esta función se dispara cuando el usuario escribe en un textárea y le da a intro. entonces con lo que se recoge en esta función se muestra en el div chata.


Muchas gracias. Voy a probarlo un poco más.

Por sharinglanguage

21 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.