Voy a desarrollar un marco para la programación de cometas, y no puedo usar Web Sockets o Eventos enviados por el servidor (porque el soporte del navegador realmente apesta). Entonces, necesito mantener viva la conexión HTTP y enviar datos fragmentados al cliente.¿Cuál es la magia detrás de Lightstreamer?
Sin embargo, los problemas se manifiestan a medida que entra en la obra:
- El uso de XMLHttpRequest no es posible, debido al hecho de que el IE no le da
xhr.responseText
mientras que elxhr.readyState
es 3. Un
- oculto
iframe
no puede ser útil, porque el navegador muestra el cargador mientras envío datos al cliente. - Intenté enviar un archivo JavaScript de vuelta al cliente, enviando comandos de ejecución de funciones cada vez, pero los navegadores no ejecutarán JavaScript hasta que esté completamente cargado.
Sin embargo, cuando miro a Lightstreamer demo page, veo que envía un archivo JavaScript de vuelta al cliente poco a poco y en cada paso, se envía una llamada a la función y que la función simplemente es ejecutado (lo que pueda no hagas esta parte). Parece que Lightstreamer usa AJAX, ya que la solicitud simplemente aparece en la pestaña de la consola de Firebug, pero también funciona como un encanto en IE.
Traté de usar todos los campos de encabezado HTTP que establecieron en su solicitud, y no produjo ningún resultado. También intenté usar HTTP Post en lugar de HTTP Get, pero aún así no obtuve ningún resultado.
He leído casi más de 20 artículos sobre la forma de aplicar el cometa, pero ninguno of'em aparezco para resolver problemas que tengo:
- Cómo hacer que a través del navegador?
- Cómo recibir notificaciones cuando lleguen nuevos datos del servidor (¿en qué evento debo conectarme?)
- ¿Cómo hacer que mi página aparezca como completamente cargada para el usuario (cómo implementarla, para que el navegador no muestre actividad de carga)?
¿Alguien por favor ayuda? Creo que debería haber una pequeña propina o truco que no sé aquí para unir todos los conceptos. ¿Alguien sabe lo que Lightstreamer hace para superar estos problemas?
Sí, lo probé, pero solo funciona si configura el tipo MIME en * text/html *. En otras palabras, debe solicitar otro documento HTML. Si configura la respuesta a ** application/javascript ** o ** application/x-javascript ** o ** text/javascript **, no funcionará. Además, no resuelve mis problemas. Puedo usar XMLHttpRequest para solicitar un archivo HTML que contenga fragmentos de JavaScript. Sin embargo, no funciona en IE. Podría usar 'iframe', pero muestra el cargador. Lightstreamer funciona en todas partes y no muestra el signo del cargador. –
También tenga en cuenta que si uso 'XMLHttpRequest' para obtener un archivo HTML siempre cargado que contenga' 'Fragmentos de JavaScript, no se ejecutarán. Quiero decir, el navegador ejecuta el código JavaScript dentro de las etiquetas JavaScript a medida que llegan, pero solo en solicitudes normales, no en solicitudes ajax. –