tag - Sondeo de servidor con JavaScript
title html (3)
¿Cuál es la mejor práctica para el servidor de sondeo con JavaScript para la aplicación que necesita actualizar datos muy rápidamente? Estoy usando jQuery para front-end y Java Spring Framework para back-end.
El ejemplo de datos actualizados puede ser una lista de elementos que se actualizan muy rápidamente (cada 1 segundo).
A partir de 2018, debe usar la función fetch con la sintaxis prometedora:
<script type="text/javascript">
setInterval(function(){
fetch("your_serverside_script.php") // Any output from the script will go to the "result" div
.then(response => response.text())
.catch(error => document.getElementById("result").innerHTML = error)
.then(response => document.getElementById("result").innerHTML = response)
}, 1000); // Poll every 1000ms
</script>
<div id="result">result will appear here</div>
Es posible que desee utilizar las funciones Ajax de jQuery para sondear el servidor cada segundo más o menos. Luego, el servidor puede responder con instrucciones al navegador casi en tiempo real.
También puede considerar un sondeo largo en lugar del anterior, para reducir la latencia sin aumentar la frecuencia de las encuestas.
Citando Comet Daily: La técnica de larga duración :
La técnica Comet de larga duración es una técnica que optimiza las encuestas tradicionales para reducir la latencia.
Las encuestas tradicionales envían un
XMLHttpRequest
al servidor en intervalos fijos. Por ejemplo, abra un nuevoXMLHttpRequest
cada 15 segundos, reciba una respuesta inmediata y cierre la conexión.Long-polling envía una solicitud al servidor, pero no se devuelve una respuesta al cliente hasta que esté disponible. Tan pronto como se cierra la conexión, ya sea debido a una respuesta que recibe el cliente o si una solicitud expira, se inicia una nueva conexión. El resultado es una reducción significativa de la latencia porque el servidor generalmente tiene una conexión establecida cuando está lista para devolver información para devolverla al cliente.
Además de lo anterior, también sugiero que revise la respuesta aceptada a la siguiente publicación de para obtener una descripción detallada de la técnica de sondeo largo:
Apoyo la sugerencia de Daniel de usar la encuesta larga o empujar. Revisa
CometD es un bus de enrutamiento de eventos escalable basado en HTTP que utiliza un patrón de tecnología Ajax Push conocido como Comet. El término ''Cometa'' fue acuñado por Alex Russell en su publicación Comet: Datos de baja latencia para el navegador.
Tienen una página que explica cómo conseguir ese trabajo con Spring: