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!

War es hilfreich?

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}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top