Michael Schröpl: kein auto-refresh trotz 'expire'

Beitrag lesen

Hi Josef,

nach Änderungen sollte beim user ein automatischer refresh der
HTML-Seite direkt vom server erfolgen.

der Server hat nicht die Initiative bei HTTP.
Nach dem Abschluß einer Anforderung weiß der Server nicht mehr, daß
der Client überhaupt noch existiert.
Insbesondere kann der Server dem Client nichts _senden_, auch keinen
Auto-Refresh. Er kann nur Anforderungen beantworten.

Wenn Du so etwas haben willst, dann mußt Du den _Client_ motivieren,
immer wieder eine Anforderung an den Server zu senden.

Dies scheint unter IE5 nicht richtig zu klappen. Der User muss
refresh händisch auslösen. Das klappt zwar, macht aber keinen Sinn.

Richtig.

Der Meta-Tag
<meta http-equiv="expires" content="0">
z.B. bewirkt nicht.

... was? Er bewirkt, daß der Browser sich so verhalten _soll_, als
hätte er den HTTP-Header "Expires: 0" erhalten. (Was übrigens ein
Formatfehler ist, weil Expires einen Datumswert gemäß RFC 1123
enthalten MUSS. Daß einige Browser diesen Wert fälschlicherweise
als "jetzt" interpretieren, ist ein Verstoß gegen den HTTP-Standard.)

Aber "Expires:" hat nichts mit Auto-Refresh zu tun. Es definiert zwar
eine Aufbewahrungsperiode im Cache, aber diese hat nur dann eine Wir-
kung, wenn der Browser motiviert wird, auf diese Ressource zuzugreifen

  • beispielsweise, wenn Du einen Link auf diese Seite anklickst.

Genau diese Motivation für den Browser fehlt Dir aber.

Dafür gibt es auch eine Lösung, wie Dir SelfHTML bei der Verwendung
sinnvoller Suchbegriffe wie "refresh" (!) natürlich verraten hätte.

Viele Grüße
      Michael