/ / Datos en tiempo real en la página web con jQuery - python, django, jquery

Datos en tiempo real en la página web con jQuery - python, django, jquery

Me gustaría una página web que actualiza constantemente ungráfico con nuevos datos a medida que llega. Regularmente, todos los datos que tiene se pasan a la página al comienzo de la solicitud. Sin embargo, necesito que la página pueda actualizarse con información nueva cada pocos segundos para volver a dibujar el gráfico.

Fondo

La página web será similar a esta http://www.panic.com/blog/2010/03/the-panic-status-board/. Los datos que ingresen tendrán valores de temperatura que se graficarán medidos por un Arduino y guardados en la base de datos de Django (esta parte ya está completa).

Actualizar

Parece que la solución es usar el jQuery.ajax() función ( http://api.jquery.com/jQuery.ajax/) con una función como .complete devolución de llamada que programará otra solicitud varios segundos después a una URL que devolverá los datos en formato JSON.

¿Cómo se puede programar ese método? Con el .delay() ¿función?

Respuestas

6 para la respuesta № 1

Por lo tanto, la página debe realizar periódicamente jQuery.ajax Llama con un url parámetro establecido en la URL de un servidor donde está el últimola información de datos (posiblemente solo como un delta incremental del último instante para el que el cliente tiene información, el cliente puede enviar ese instante como un parámetro de consulta en la llamada Ajax) se sirve, idealmente en formato JSON. La devolución de llamada al completar la solicitud asincrónica puede programar las próximas llamadas ajax durante unos segundos en el futuro y volver a pintar el gráfico.

El hecho de que, en el lado del servidor, estés usando Django, no parece tan crucial, el servidor solo necesita formatear un montón de datos como JSON y enviarlos de vuelta, después de todo.


0 para la respuesta № 2

Si los datos están compuestos por gráficos sobre la marcha, puede simplemente servirlos (en gif, png o cualquier otro formato gráfico) a través de Django y volver a cargarlos individualmente o incluso volver a cargar toda la página a la vez.

Depende de los requisitos de carga y rendimiento, pero puede comenzar simplemente recargando toda la página y luego, si es necesario, usar AJAX para volver a cargar solo cada parte específica (es muy fácil de lograr con jQuery o prototype usando actualizaciones). Si espera una gran cantidad de datos, debe cambiar para generar el gráfico en el cliente, utilizando solo datos incrementales JSON.