Benachrichtigungen ohne erneutes Laden der Seite (wie Facebook oder Google plus Benachrichtigungen)

8

Was wäre der ideale Mechanismus, um Benachrichtigungen wie in Facebook in ein Dashboard zu bekommen? Ich denke, der beste Weg ist, alle 5 Sekunden einen Ajax-Anruf auf eine PHP-Seite zu machen und die Benachrichtigungen abzurufen.

Gibt es einen besseren Weg, eine ähnliche Änderung vorzunehmen?

Es sollte auch in allen mobilen Browsern funktionieren.

Ich mache es auf die folgende Weise,

Verwenden Sie $.post in jquery, um Daten ohne Seitenauffrischung zu erhalten.

%Vor%

BEARBEITEN 1

Ich habe eine Funktion wie diese geschrieben, nachdem ich auf einige Online-Notizen hingewiesen habe und sie in Echtzeit funktioniert.

%Vor%

PHP-Datei ist,

%Vor%

BEARBEITEN 2

Alles funktioniert gut, aber wenn in der Datei data.txt nichts passiert ist, bekomme ich in 50 Sekunden eine Fehlermeldung wie diese.

Fehler: Zeitüberschreitung (Timeout)

Wie kann das verhindert werden?

REF: JavaScript-Variablenumfang

    
dev1234 14.10.2013, 04:41
quelle

1 Antwort

4

Soweit ich weiß, gibt es grundsätzlich zwei Möglichkeiten, dies zu tun: Polling und Websockets. Beim Polling werden entweder viele Anfragen in Intervallen gestellt oder es besteht eine sehr lange Anfrage, die der Browser und der Server wissen ("Long Polling"). Dann gibt es Websockets. Ich war schon lange nicht mehr in PHP Land, aber zuletzt habe ich überprüft, dass Websockets dort nicht wirklich unterstützt werden. Es könnte sich geändert haben. In Node world ist socket.io eine großartige Lösung, die Websockets und Long Polling als Backup verwendet.

Eine schnelle Suche hat das für websockets und php gefunden: Ссылка

    
Zeke Alexandre Nierenberg 14.10.2013, 05:02
quelle

Tags und Links