2010-12-07 4 views
2

Ich würde gerne ein div's Inhalt aktualisieren, sobald eine neue Zeile in einer MySQL-Datenbank erscheint (ich mache eine Webmail-App). Während ich dies schreibe, wird mir immer klarer, dass ich keine Art von Server-Nachricht an den Client senden kann, um sie zu aktualisieren, also bin ich zu dem Schluss gekommen, dass der beste Weg, Live-Updates zu haben, darin besteht Verwenden Sie einen jQuery-Ajax-Aufruf, ausgelöst durch ein setTimeOut-Ereignis.Live-Updates mit AJAX

Meine Frage ist: Gibt es einen besseren Weg, dies zu tun? Oder, wenn ich setTimeOut verwenden muss, welches Zeitintervall sollte ich einstellen, um das optimale Gleichgewicht zwischen Serverbenutzung und Aktualisierungszeiten zu halten?

Der Code, der bei jedem AJAX-Aufruf ausgeführt wird, ist eine Abfrage (um neue Mails abzurufen) und eine Schleife, um sie an eine ul zu senden.

Antwort

1

denke ich HTML5 WebSockets könnte das sein, was Sie suchen ...

ein Beispiel gibt es Verwendung here.

Wie Sie bereits erwähnt haben, ist der Support derzeit auf Chrome und Safari beschränkt.

+0

Danke für die Idee - Ich werde mir Websockets anschauen, wenn HTML5 Mainstream wird, aber vorerst möchte ich Kompatibilität mit aktuellen HTML4 Browsern behalten. – Bojangles

2

Dies ist der beste Weg, es sei denn, Sie Stream-Hub oder ein COMET-Server verwenden, die AJAX ist umgekehrt :)

+0

Danke für die Hilfe. Ich bleibe bei AJAX. Können Sie ein gutes Zeitintervall empfehlen? Wären 30 Sekunden ok? – Bojangles

+0

Nun, ich habe Dashboards, wo ich 5 Sekunden verwende, aber diese arent große Seiten, so wenn Ihre Website groß wird dann können Sie 1 Minute verwenden. Wer muss Mails mehr als einmal pro Minute überprüfen :) – benhowdle89

+0

Sehr wahr. Danke für die Hilfe :-) – Bojangles