Sé que esto es una vieja pregunta, pero tropezó con ella, y en la forma Stackoverflow de hacer las cosas que pensé que podría mejorarlo. Es posible que desee considerar una solución similar a what's described here que se conoce como larga encuesta. O otra solución es WebSockets (una de las mejores implementaciones de websockets con el objetivo principal de trabajar en todos los navegadores) socket.io.
La primera solución se resume básicamente como enviar una sola solicitud AJAX y esperar una respuesta antes de enviar una adicional, luego una vez que se haya entregado la respuesta, ponga en cola la siguiente consulta.
Mientras tanto, en el back-end no devuelve una respuesta hasta que el estado cambie. Entonces, en su escenario, utilizaría un ciclo while que continuaría hasta que el estado cambiara, luego devolvería el estado modificado a la página. Realmente me gusta esta solución. Como indica la respuesta vinculada anteriormente, esto es lo que Facebook hace (o al menos lo ha hecho en el pasado).
socket.io es básicamente la jQuery de Websockets, por lo que cualquiera que sea el navegador en el que se encuentren los usuarios puede establecer una conexión de socket que pueda enviar datos a la página (sin polling). Esto está más cerca de las notificaciones instantáneas de Blackberry, que, si va por un instante, es la mejor solución.
yo usaría 'setTimeout' y siempre llamarlo cuando se recibió la respuesta anterior. De esta forma evitará la posible congestión o acumulación de funciones o como quiera llamarlo. –
Lo he hecho como @FelixKling dijo y funciona como un encanto. ¡Intentalo! – Alfabravo
¡Impresionante! ¿Puede @FelixKling, podría publicar eso como la respuesta y lo acepto? – Sologoub