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!

Était-ce utile?

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}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top