Pregunta

Estoy construyendo un componente de una página web que necesita la base de datos de votación relativamente constante. Puedo ver dos enfoques diferentes para esto, y me pregunto si uno de ellos es mejor que los otros, o si me falta una tercera opción.

1) Enviar aprovechó un servicio AJAX solicitar cada 1 o 2 segundos para comprobar si hay actualizaciones. Cada solicitud vuelve inmediatamente si hay o no datos nuevos.
2) disparar una única solicitud AJAX que no volverá hasta que recibe datos o se produce un tiempo de espera. Tras cualquiera de los que suceden, se dispara la siguiente solicitud. (Creo que se llama tiempo de votación?)

El número de consultas de bases de datos será el mismo con cualquiera, pero con # 2 no sería menos solicitudes que disparaban desde el navegador lo que podría ahorrar ancho de banda y recursos del cliente. Para el servidor, es mejor tener una sola petición PHP que permanezca activa y duerme entre consultas, o que los incendios cada pocos segundos, sondea el DB, luego se apaga? ¿O no hay diferencia y estoy haciendo hincapié sobre este demasiado?

EDIT: Supongo que debe indicar también que este es un widget de chat de una aplicación web más grande. Un ligero retraso en la comunicación no va a matar a un usuario, como el chat es una función secundaria.

¿Fue útil?

Solución

sondeo largo escalará mejor (es decir, menor carga del servidor) de la votación, mientras que da mucho mejores tiempos de respuesta.

Si los sondeos de receptores, el tiempo medio de viaje de un mensaje será la mitad de su intervalo de sondeo.

Con sondeo largo, su instantánea -. El servidor sólo espera si no hay nada que decir

Si usted está haciendo la mensajería de chat, vaya a largo encuesta; es una cosa usabilidad.

La desventaja con el tiempo de votación es que es más complicado de implementar; pero no es mucho más complicado, y se implementa ampliamente. Así que si no se puede utilizar un marco fuera de la plataforma de su servidor web de elección, se puede establecer sobre la escritura una forma razonable y va a conseguir que funcione.

Otros consejos

También puede buscar en websockets , que forma parte de los nuevos navegadores (o emulado a través de un < a href = "http://github.com/gimite/web-socket-js" rel = "nofollow"> archivo flash se le cae en su página)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top