Foros del Web » Programando para Internet » Javascript »

que consume mas recursos peticion larga o cada 1 segundo?

Estas en el tema de que consume mas recursos peticion larga o cada 1 segundo? en el foro de Javascript en Foros del Web. es un sistema comentarios tiempo real que checa cada 1 segundo si hay info nueva y si la hay la muestra. que consume mas que ...
  #1 (permalink)  
Antiguo 23/08/2012, 23:43
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 9 años, 10 meses
Puntos: 52
que consume mas recursos peticion larga o cada 1 segundo?

es un sistema comentarios tiempo real que checa cada 1 segundo si hay info nueva y si la hay la muestra.

que consume mas que cheque cada segundo, envie peticiones cada segundo, o que haga una peticion larga al servidor?

y en que hacer esa peticion larga. las peticiones que hago las hago con ajax, cmo puedo hacer para que se haga una peticion larga?
  #2 (permalink)  
Antiguo 24/08/2012, 09:23
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 9 años, 10 meses
Puntos: 83
Respuesta: que consume mas recursos peticion larga o cada 1 segundo?

Lo que te interesa se llama persistent conection, googlea un poco para encontrar informacion acerca del concepto long polling, y acerca de unas librerias llamadas Comet y socket.io, con esto puedes dejar abierto un canal con el servidor para refrescar cada intervalo que quieras; lo que no se es como se lo va a tomar un usuario con contrato a isp donde le cobren por trafico de datos :)

vosk
  #3 (permalink)  
Antiguo 24/08/2012, 18:21
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 9 años, 10 meses
Puntos: 52
Respuesta: que consume mas recursos peticion larga o cada 1 segundo?

Cita:
Iniciado por vosk Ver Mensaje
Lo que te interesa se llama persistent conection, googlea un poco para encontrar informacion acerca del concepto long polling, y acerca de unas librerias llamadas Comet y socket.io, con esto puedes dejar abierto un canal con el servidor para refrescar cada intervalo que quieras; lo que no se es como se lo va a tomar un usuario con contrato a isp donde le cobren por trafico de datos :)

vosk
No entendi eso del contrato isp disculpa.

lo ocupo para un hosting gratuito.
y bueno entonces cual consumira mas

la pagina, es tipo red social.
gracias
  #4 (permalink)  
Antiguo 25/08/2012, 08:56
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 9 años, 10 meses
Puntos: 83
Respuesta: que consume mas recursos peticion larga o cada 1 segundo?

Consumirá en funcion de las peticiones que hagas, no? Consumirá mas cuando tengas un intervalo de ejecucion de 1 segundo para establecer una nueva conexion (ajax abre una nueva conexion al servidor, ejecuta la query y cierra); lo bueno de esto es que tendrás actualizada la lista de mensajes a casi tiempo real, que es lo que no tendras cuando hagas una actualizacion cada hora (por ejemplo)

Por eso te pueden servir las librerias que te comenté, que basicamente sirven para establecer una conexion persistente con el servidor y actualizar datos a tiempo real. Dependiendo de la importancia que creas que tiene el echo de tener la lista de datos actualizada a intervalos de medio segundo, puede que esto sea la solucion que te interesa; si la lista de mensajes se puede actualizar cada media hora será mejor que lo hagas con ajax

Lo del contrato isp era una broma un poco cutre disculpa

saludos
vosk
  #5 (permalink)  
Antiguo 25/08/2012, 09:22
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 9 años, 10 meses
Puntos: 52
Respuesta: que consume mas recursos peticion larga o cada 1 segundo?

Como podria hacer que con este codigo haga la peticion larga?
este lo que hace es darle en un setTime, si le quito el setTime lo hace cada segundo por default

con este codigo como le podria hacer para que se haga una peticion larga?
leer un poco de comet. y socket.io
pero esos comet y socket los trabaja el cliente no? asi como el ajax de peticiones?
Bueno este es mi codigo ajax para peticiones
Código Javascript:
Ver original
  1. /*
  2. * Parametros mandatorios
  3. */
  4.     var seconds =1; // el tiempo en que se refresca
  5.     var divid = "contente"; // el div que quieres actualizar!
  6.     var url = "Chat/chat.php"; // el archivo que ira en el div
  7.     var respuesta="";
  8.     var nuevos=0;
  9.     function refreshdiv(){
  10.  
  11.         // The XMLHttpRequest object
  12.  
  13.        
  14.         var xmlHttp;
  15.         try{
  16.             xmlHttp=new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari
  17.         }
  18.         catch (e){
  19.             try{
  20.                 xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
  21.             }
  22.             catch (e){
  23.                 try{
  24.                     xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  25.                 }
  26.                 catch (e){
  27.                     alert("Tu explorador no soporta AJAX.");
  28.                     return false;
  29.                 }
  30.             }
  31.         }
  32.  
  33.         var timestamp = parseInt(new Date().getTime().toString().substring(0, 10));
  34.         var nocacheurl = url+"?t="+timestamp;
  35.  
  36.         // The code...
  37.  
  38.         xmlHttp.onreadystatechange=function(){
  39.             if(xmlHttp.readyState== 4 && xmlHttp.readyState != null){
  40.                 respuesta=xmlHttp.responseText;
  41.                        
  42.                
  43.                 nuevos=nuevos+1;
  44.                 $(respuesta).insertAfter("#"+divid);
  45.                 setTimeout('refreshdiv()',seconds*1000);
  46.             }
  47.         }
  48.         xmlHttp.open("GET",nocacheurl,true);
  49.            
  50.         xmlHttp.send(null);
  51.  
  52.     }
  53.  
  54.     // Empieza la función de refrescar
  55.  
  56.     window.onload = function(){
  57.        
  58.         refreshdiv(); // corremos inmediatamente la funcion
  59.    
  60.        
  61.     }
  #6 (permalink)  
Antiguo 25/08/2012, 16:12
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 9 años, 10 meses
Puntos: 83
Respuesta: que consume mas recursos peticion larga o cada 1 segundo?

Si quitas el setTimeout la funcion no tendría que volver a ejecutarse hasta el siguiente evento onLoad, si aun quitando el seTimeout se dispara 'refreshdiv()' significa que lo estas llamando desde algun otro sitio. Si quieres esperar mas que 1 segundo solo tienes que aumentar el valor 'seconds'

Comprueba eso de que se hace cada segundo por default aun quitando el setTimeout; otra cosa, revisa tambien el condicional de la linea 39

vosk
  #7 (permalink)  
Antiguo 25/08/2012, 20:23
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 9 años, 10 meses
Puntos: 52
Respuesta: que consume mas recursos peticion larga o cada 1 segundo?

Cita:
Iniciado por vosk Ver Mensaje
Si quitas el setTimeout la funcion no tendría que volver a ejecutarse hasta el siguiente evento onLoad, si aun quitando el seTimeout se dispara 'refreshdiv()' significa que lo estas llamando desde algun otro sitio. Si quieres esperar mas que 1 segundo solo tienes que aumentar el valor 'seconds'

Comprueba eso de que se hace cada segundo por default aun quitando el setTimeout; otra cosa, revisa tambien el condicional de la linea 39

vosk
Llamo la funcion desde el index. osea de la pagina
lo llamo como llamar cualquier archivo jquery.
solo se ejecuta esa linea una vez y ya se queda alli ciclado.
y cuando le quito el settime.
mando un mensaje y en el otro explorador me llega un segundo despues.

la condicional, la analizare mas detenidamente. ya que ese codigo lo encontre en un foro y solo le hice algunas modificaciones para adaptarlo.

lo que entiendo de esas condicionales es que 4 pregunta si esta listo y no es nullo lo que recibe. aunque no muy aun. vere a ver que entiendo
  #8 (permalink)  
Antiguo 26/08/2012, 04:51
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 9 años, 10 meses
Puntos: 83
Respuesta: que consume mas recursos peticion larga o cada 1 segundo?

Ok

El condicional de la linea 39 comprueba que 'readyState' sea 4 (peticion finalizada y respuesta disponible), con lo que cuando readyState sea 4 nunca será nulo (es decir que esa segunda comparacion te sobra). lo que debes comprobar es la propiedad 'status', que debe retornarte 200 (equivale al codigo de estado de la peticion HTTP que realizó)

Código:
if(xmlHttp.readyState == 4 && xmlHttp.status == 200) {
    ...
}
vosk

Etiquetas: ajax, chat, comentarios, larga, peticion
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




La zona horaria es GMT -6. Ahora son las 23:00.