Code Entwurf für Auto-Update-Seiten
-
22-09-2019 - |
Frage
Ich möchte mess around mit Echtzeit-Informationen, und es ist eine ziemlich Standard-Funktionalität, dass ich duplizieren möchten:
Es tritt hier auf SO, wenn Sie auf einer Single-Frage Ansicht sind, Ihre Antwort eingeben und eine Warnung erscheint oben sagen: „Es gibt drei Nachrichten Antworten, Hier klicken für“
Es tritt auch auf Twitter: "Es gibt 5 neue Tweets in dieser Suche: Klick auf Update"
Ich bin ziemlich in Server- und Client-Seite Code versiert, und was ich suche ist die Grundzug (nicht einmal Pseudo-Code, aber vielleicht einfaches Englisch), wie so etwas passiert.
Gibt es einen cron-Job auf dem Server jede Minute ausgeführt wird, dass schießt ein Signal an ein lang abgefragt AJAX auf der Seite Bit?
Ist die Seite selbst einen Server abzufragen?
Jede und alle Lösungen sind willkommen. Dank!
Lösung
können Sie implementieren, dass ein AJAX-Aufruf, dass läuft auf der Client-Seite in regelmäßigen Abständen die Javascript setTimeout
Methode. Sie werden eine Javascript-Funktion, die Ihre Server-Seite-Methode aufruft, dass überprüft, ob ein Update aufgetreten ist, zeigt jede Aktualisierung, dann SetTimeout nennt sich zu nennen.
Pseudo-Code:
function updateCheck()
{
//make ajax call
//do something if any update has occurred
setTimeout("updateCheck()", 10000); //second param is in milliseconds
}
Andere Tipps
Von der Spitze von meinem Kopf, würde ich es über Javascript machen - Timeouts Einstellung der Server zu hinterfragen. Das ist nur eine Vermutung aber.
Sieht aus wie SO verwendet eine periodische Aktualisierungs eine Ajax-Anforderung an eine URL wie zu machen:
https://stackoverflow.com/posts/2307584/answer-activity-heartbeat
Gibt ein JSON Ergebnis:
{"Result":false,"Count":0}
Heres ein Beispiel für das Ergebnis, wenn eine neue Antwort vorhanden ist:
{"Result":true,"Count":1}