www tag manager gtm googletagmanager google ajax json xmlhttprequest

ajax - gtm - tag manager google analytics



¿Cómo evita el chat de Facebook el sondeo continuo del servidor? (1)

Facebook usa una técnica que ahora se llama Comet para enviar mensajes del servidor al cliente en lugar de que el cliente haga una encuesta al servidor.

Hay muchas maneras en que esto puede implementarse, con XMLHttpRequest largo son una opción. El principio detrás de este método es que el cliente envía un XMLHttpRequest ordinario pero el servidor no responde hasta que ocurre algún evento (como otro usuario que envía un mensaje), por lo que el cliente está obligado a esperar. Cuando el cliente recibe una respuesta (o si la solicitud se agota), el cliente simplemente crea una nueva solicitud para que siempre tenga una solicitud abierta al servidor.

Estoy tratando de entender cómo la función de chat de Facebook recibe mensajes sin cambiar continuamente el servidor.

Firebug me muestra un solo GET XmlHttpRequest continuamente sentado allí, esperando una respuesta del servidor. Después de 5 minutos, esto nunca se agotó.

¿Cómo están evitando el tiempo de espera?

¿Una solicitud de AJAX puede quedarse allí así indefinidamente, esperando una respuesta?

¿Puedo hacer esto con JSONRequest? Veo esto en json.org:

JSONRequest está diseñado para admitir conexiones dúplex. Esto permite aplicaciones en las que el servidor puede iniciar transmisiones de forma asíncrona. Esto se hace utilizando dos solicitudes simultáneas: una para enviar y la otra para recibir. Al usar el parámetro de tiempo de espera, se puede dejar pendiente una solicitud POST hasta que el servidor determine que tiene datos oportunos para enviar.

¿O hay otra forma de dejar que una llamada AJAX se quede allí sentada, esperando, además de usar JSONRequest?