Seite 1 von 1

Div reload per setInterval

Verfasst: Mittwoch 3. Dezember 2008, 19:10
von bake
Die Ausgangssituation:
Auf einer HTML Seite befinden sich vier Div-Elemente, die mit Hilfe eines Ajax Requests welches durch setInterval gesteuert wird jede Sekunde neu geladen werden sollen. Das Ganze funktioniert auch wunderbar. Die Seite dient als Statusmonitor wird also am Anfang nur einmal aufgerufen und bleibt geöffnet. Einzig die vier Divs verändern sich.

1. Kann das nach einer gewissen Zeit zu Problemen führen? immerhin werden hier vier Requests pro Sekunde abgefeuert, oder stellt das für den Browser, in diesem Fall Firefox, kein Problem da?

2. Lässt sich das ganze irgendwie anders lösen? Es werden nicht immer neue Informationen geholt, es kann auch sein, dass sich mal ein paar Minuten nichts verändert und die Requests gar keine neuen Informationen liefern. Das Grundproblem ist ja, dass der Browser nicht weiß, wann sich ein Datenbank eintrag verändert hat, richtig?

Verfasst: Mittwoch 3. Dezember 2008, 20:42
von sma
Sind es 4 verschiedene Server? Warum kannst du mit einem Poll-Request nicht gleich alle 4 DIV-Inhalte holen? Das würde die Last schon mal reduzieren. Ansonsten würde ich zusehen, dass If-Modified-Since (oder wie das genau heißt) von deinem Webframework korrekt ausgewertet wird und wenn es keine Veränderung auf dem Server gab, dann ein 304 (Not Modified) geliefert wird. Sorge auch dafür das Etags unterstützt werden.

Schließlich kann der Server (wenn es nicht der Standard-Apache/Lighttpd usw. ist, der einen Request ja sofort beenden will) einfach mit der Antwort auf einen Poll-Request so lange warten, bis er auch etwas zu sagen hat. Dazu muss der Server aber die ganze Zeit laufen und die Requests am Leben halten, was dem üblichen Verfahren bei Python und Co widerspricht.

Stefan