2010-01-28 28 views
8

Estoy lo suficientemente familiarizado con Ajax y JSON que puedo enviar una solicitud y obtener un análisis de una solicitud JSON. Idealmente, me gustaría recibir una respuesta múltiple para actualizar periódicamente una barra de progreso. De esta manera, los clientes pueden tener una retroalimentación positiva.Cómo "ejecutar" json del servidor al cliente usando javascript

He oído hablar de las transmisiones JSON pero no he encontrado un buen recurso sobre cómo implementar esto. ¿Alguien sabe de un buen recurso o cómo hacer esto?

Respuesta

1

JSON es otro formato de datos que pasa por el protocolo HTTP (como texto, html, pdf, etc.). Probablemente se esté refiriendo al cometd.

Esto le permite abrir una conexión persistente y enviar datos desde el servidor al cliente (es decir, transmitirlo). Cualquier formato es válido para enviar, el cliente solo necesita entenderlo.

+0

Bueno, por supuesto, pero ¿cómo transmitir fragmentos JSON individuales correctamente? –

+0

sí ... mi respuesta no fue la mejor. Pero básicamente mi experiencia es que no hay un estándar aquí. La forma en que lo he visto suceder es que defines un delímetro. Usar una nueva línea funciona bastante bien. Como resultado, el cliente simplemente "lee" la transmisión. Se supone que cada línea es un objeto/carga útil total json que se consume. – mlathe

0
<script language="JavaScript"> 
    function doSomething() { 
    // do something here... 
    } 
    setInterval('doSomething()',10000); 
<script> 

Llamará a una función cada 10 segundos. De modo que puede sondear el servidor cada 10 segundos (o 1 segundo) para obtener una respuesta sobre el estado de cualquier evento que esté tratando de rastrear. Simplemente ponga su llamada AJAX dentro de esa función y la enviará.

+0

Esto no está transmitiendo en tiempo real. –

+0

Cuando se escribió esta respuesta, hace 7 años, WebSockets no era una cosa, y la única opción verdadera de transmisión era Flash. Dado que "Stream" estaba entre comillas en la pregunta, y en la pregunta "Idealmente me gustaría recibir una respuesta múltiple para actualizar periódicamente una barra de progreso", una solución de sondeo era viable, fácil de implementar y carecía de dependencias con software de terceros. . Sé que no es transmisión, pero la solicitud lo utilizó como un verbo, no como un requisito técnico. –

+0

Hace 7 años, la transmisión se realizaba mediante encuestas largas. Hice una aplicación de chat en tiempo real en ese momento - transmitía mensajes entrantes. Así que no, esto tampoco se transmitió hace 7 años. –

0

Intenta buscar en la biblioteca "cometa". Implementa lo que se conoce como "AJAX inverso". Te permitirá enviar eventos desde el servidor al cliente fácilmente.

La sugerencia de sondeo hecha justo antes de la mía, también es perfectamente válida.

1

Encontré una técnica llamada page streaming.

Básicamente, escribe <script>some js</script> entradas en la conexión persistente y las vacía en la interfaz de red. A medida que el navegador lo reciba, analizará y ejecutará el script.

Cuestiones relacionadas