Dennis: Eine Seite serverseitig aktualisieren

Beitrag lesen

Hi Praktikant1,

Die Möglichkeit, die Seite automatisch (z.B.) jede 10 Sekunden neu zu laden ist nicht akzeptabel.

Dann ist dein Problem nicht zu lösen - zumindest nicht mit HTTP. HTTP ist so konzipiert, dass

  1. ein Client kommt (Verbindung herstellen)
  2. der Client fragt nach etwas (Request-Daten senden)
  3. der Client bekommt etwas (Server sendet Response-Daten)
  4. der Client geht (Verbindung schließen).

In dem Moment wo der Client weg ist, hast du - "du" hier als Server - keine Möglichkeit mehr den Clienten zu erreichen und wenn der Client nicht irgendwann noch mal freiwillig wiederkommt, wirst du nie wieder mit ihm in Kontakt geraten.

Das war jetzt das Abstrakte, nun etwas konkreter auf dein Problem bezogen - du hast zwei Möglichkeiten:
a) den Client per Meta-Refresh oder Javascript bitten die Seite in regelmäßigen
   Abständen neu zu laden
b) per AJAX (letztlich also auch per Javascript) Teile der Seite neu vom Server
   laden und anzeigen
beides jedoch nach dem Grundprinzip der regelmäßigen Aktualisierung der Seite in der Hoffenung, dass auf dem Server mittlerweile neue Informationen vorhanden sind.

Es gibt noch einen Trick, den man z.B. bei Chats verwendet, welche über HTTP laufen sollen - dabei gaukelt man dem Clienten vor, die Seite wäre noch nicht fertig geladen, lässt ihn dadurch warten und schickt neue Nachrichten des Chats dann noch hinterher.
Abgesehen davon, dass so etwas scheußlich ist, besteht für dich auch keine Möglichkeit davon zu profitieren - denn du möchtest ja Inhalte aktualisieren, also alte Inhalte durch neue Inhalte ersetzen. Mit dem beschrieben Trick können allerdings nur nachträglich noch Informationen angefügt werden (für einen Chat reicht das ja) - was bereits gesendet wurde, wurde bereits gesendet und kann nicht mehr verändert werden.

MfG, Dennis.

--
Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
Patch zur Verwendung von PATHINFO in JLog
Wer kämpft, kann verlieren. Wer nicht kämpft, hat schon verloren. (Bertholt Brecht)