Sondage du serveur avec JavaScript
Quelle est la meilleure pratique pour polling server avec JavaScript pour une application qui doit rafraîchir les données très rapidement? J'utilise jQuery pour front-end et Java Spring Framework pour backend.
exemple de données mises à jour pourrait être la liste des éléments qui sont mis à jour très rapidement (toutes les 1 seconde).
3 réponses
vous pouvez utiliser les fonctions Ajax de jQuery pour sonder le serveur à chaque seconde environ. Ensuite, le serveur peut répondre avec des instructions au navigateur en temps quasi réel.
vous pouvez également considérer long polling au lieu de ce qui précède, pour réduire la latence sans augmenter la fréquence des scrutins.
, Citant Comète Quotidien: Le Long Du Scrutin Technique :
la technique de la comète à sondage long est une technique qui optimise le sondage traditionnel pour réduire la latence.
les sondages traditionnels envoient un
XMLHttpRequest
au serveur à intervalles fixes. Par exemple, ouvrez un nouveauXMLHttpRequest
toutes les 15 secondes, recevez une réponse immédiate, et fermez la connexion.Long-polling envoie une requête au serveur, mais une réponse n'est pas retournée au client tant qu'elle n'est pas disponible. Dès que la connexion est fermée, soit en raison d'une réponse à la réception par le client ou, si une demande, une nouvelle connexion est établie. Il en résulte une réduction significative de la latence, car le serveur a généralement une connexion établie lorsqu'il est prêt à retourner des informations au client.
en plus de ce qui précède, je vous suggère également de vérifier la réponse acceptée pour le post de débordement de pile suivant pour un détail description de la technique de sondage long:
je deuxième Daniel suggestion du pour utilisation de longue sondage ou à pousser. Découvrez
CometD est un bus évolutif de routage D'événements basé sur le protocole HTTP qui utilise un modèle de technologie Ajax Push connu sous le nom de Comet. Le terme "Comet" a été inventé par Alex Russell dans son article Comet: Low Latency Data for the Browser.
Ils ont une page expliquant comment obtenir ce travail avec le printemps:
à partir de 2018, vous devez utiliser la fonction fetch avec la syntaxe promise:
<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>