les grandes lignes de code pour les pages mise à jour automatique
-
22-09-2019 - |
Question
Je veux mess avec des informations en temps réel, et il y a une fonctionnalité assez standard que je veux reproduire:
Il se produit ici sur le SO lorsque vous êtes sur une vue unique question, en tapant votre réponse, et une alerte apparaît en haut en disant « il y a 3 réponses nouvelles, cliquez pour voir »
Il se produit également sur Twitter « Il y a 5 nouveaux tweets dans cette recherche: cliquez pour mettre à jour »
Je suis assez versé dans le serveur et le code côté client, et ce que je suis à la recherche est le schéma de base (le code même pas psuedo, mais peut-être simplement anglais) de la façon dont quelque chose comme cela se produit.
Y at-il un travail CRON sur le serveur exécutant chaque minute, qui tire un signal à un peu AJAX long sondé sur la page?
Est-ce que la page elle-même Interroger un serveur?
Toutes et toutes les solutions sont les bienvenus. Merci!
La solution
Vous pouvez mettre en œuvre que l'utilisation d'un appel AJAX qui fonctionne sur le côté client à un intervalle régulier en utilisant la méthode setTimeout
Javascript. Vous aurez une fonction Javascript qui appelle votre méthode côté serveur qui vérifie si une mise à jour a eu lieu, affiche une mise à jour, puis appelle setTimeout à appeler lui-même.
pseudo-code:
function updateCheck()
{
//make ajax call
//do something if any update has occurred
setTimeout("updateCheck()", 10000); //second param is in milliseconds
}
Autres conseils
Du haut de ma tête, je ferais via javascript - mettre les délais d'attente à la question du serveur. C'est seulement une supposition bien.
On dirait utilise des Updater périodique pour faire une demande de paiement ajax à une URL comme:
https://stackoverflow.com/posts/2307584/answer-activity-heartbeat
renvoie un résultat JSON:
{"Result":false,"Count":0}
Voici un exemple du résultat quand existe une nouvelle réponse:
{"Result":true,"Count":1}