Foros del Web » Programando para Internet » Javascript »

Llamada cada 5 segundos, ¿excesivo?

Estas en el tema de Llamada cada 5 segundos, ¿excesivo? en el foro de Javascript en Foros del Web. Hola, tengo una página donde los usuarios cuando escriben, cada cierto tiempo se les va guardando en la base de datos lo que van escribiendo ...
  #1 (permalink)  
Antiguo 30/12/2013, 04:48
Avatar de iEnrique  
Fecha de Ingreso: abril-2013
Ubicación: España
Mensajes: 346
Antigüedad: 11 años
Puntos: 5
Llamada cada 5 segundos, ¿excesivo?

Hola,
tengo una página donde los usuarios cuando escriben, cada cierto tiempo se les va guardando en la base de datos lo que van escribiendo a forma de borrador. Yo lo que hago es pasarlo por Ajax pero no sé cada cuanto tiempo ni nada, había pensado en 5 segundos.

Tiene que ser suficiente para que no les de tiempo a escribir mucho. También había pensado en cada vez que escriban pero eso me parece todavía más exagerado.

¿Se revoluciona un ordenador normalito con esto que digo? ¿Cual sería la mejor forma de hacerlo?

Gracias
  #2 (permalink)  
Antiguo 30/12/2013, 09:52
Avatar de moriorGames  
Fecha de Ingreso: diciembre-2013
Ubicación: Barcelona
Mensajes: 37
Antigüedad: 10 años, 4 meses
Puntos: 3
Respuesta: Llamada cada 5 segundos, ¿excesivo?

A ver, creo que puedes hacer una petición cada 5 segundos al servidor y guardar datos, eso no te va a matar el servidor.

El caso es si prevees que vas a tener muchos usuarios en esa aplicación. Por ejemplo, si vas a crear un chat donde tienes expectativas de tener 100 usuarios conectados a la vez quizá no sea tanto (dependiendo de las características del servidor claro) pero si vas a tener 500 o 1000 personas conectadas y esas 1000 personas van a estar haciendo peticiones cada 5 segundos, probablemnte ahí tienes un posible kill server.

Yo estoy en las mismas, desarrollando un chat y hago peticiones cada segundo. De momento no tengo problemas, pero tengo menos de 100 usuarios. Pero soy consciente que si empiezo a subir de usuarios voy a tener que empezar a pensar en otras alternativas.
__________________
Mi juego de estrategia medieval si lo entras hazme llegar tu opinión por favor, siempre la tengo en cuenta.
  #3 (permalink)  
Antiguo 30/12/2013, 15:07
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Llamada cada 5 segundos, ¿excesivo?

Te recomendaría si no tienes posibilidad de usar técnicas como comet, hacer un "poolling", es decir para leer mensajes nuevos: hacer una llamada al servidor, el servidor revisa si hay mensajes, si no los hay espera, cuando haya mensajes responde, y encadena la siguiente llamada ajax. Esto reduce mucho la cantidad de llamadas al servidor. En php y a grandes rasgos algo así:

Código PHP:
Ver original
  1. while(1){
  2.    if(mensajes_nuevos()){//funcion que vea si hay mensajes
  3.          return $mensajes;//regresa los mensajes en algún formato.
  4.    }
  5.   sleep(5);// si no hay mensajes dormimos el proceso 5 o x segundos para no gastar recursos
  6. }
Cuando el cliente recibe la respuesta, vuelve a hacer otra llamada inmediatamente.

Esto te asegura un retraso máximo de 5 segundos por mensaje, considerando el tiempo en que la gente tarda en escribir o leer un mensaje (2-3 segundos) no significa demasiado tiempo.


Luego hay que ver el control de que no se caiga la conexión, por ejemplo si no hay respuesta luego de x minutos hacer otra llamada, pero eso ya es otra historia.
  #4 (permalink)  
Antiguo 31/12/2013, 07:17
Avatar de iEnrique  
Fecha de Ingreso: abril-2013
Ubicación: España
Mensajes: 346
Antigüedad: 11 años
Puntos: 5
Respuesta: Llamada cada 5 segundos, ¿excesivo?

Vale, muchas gracias al final lo haré cada 5 segundos y si hay alguna queja lo cambio
  #5 (permalink)  
Antiguo 31/12/2013, 15:22
 
Fecha de Ingreso: diciembre-2013
Mensajes: 150
Antigüedad: 10 años, 4 meses
Puntos: 8
Respuesta: Llamada cada 5 segundos, ¿excesivo?

Puede ser suficiente con 4 segundos.
__________________
¿Necesitas ayuda con algún algoritmo? Si tienes dudas, entonces visita: http://algoritmosypseudocodigo.blogspot.com/.

Etiquetas: ajax, cada, llamada, segundos
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 02:48.