Rolf B: Wie aktualisiert sich eine HTML Seite selbst?

Beitrag lesen

problematische Seite

Hallo Peter,

ich habe deinen Thread umbenannt, weil es ja nicht um das Ausführen externer Programme geht.

Welches Knowhow bringst du mit und welche Möglichkeiten hast du am Server (PHP, node.js)?

Für einen automatischen Refresh der Seite gibt es diverse Möglichkeiten. Welche du wählst, hängt von deinen persönlichen Fähigkeiten und deinen technischen Möglichkeiten ab.

Eventuell kommst Du in ein Tauziehen mit den Cache-Funktionen von Browser und Server, denen Du das Cachen dann abgewöhnen musst. Das ist serverseitig über entsprechende HTTP Header lösbar, für nähere Infos bräuchten wir Auskunft über deine Serverlandschaft.

1. Eine Weiterleitung der Seite auf sich selbst mit meta refresh. Sehr primitiv, aber scheint zu funktionieren. Setzt natürlich voraus, dass irgendwer oder irgendwas den HTML-Quelltext aktualisiert, oder dass auf dem Server eine dynamische Seite (z.B. PHP-Script) und keine statische HTML Seite vorliegt.

Ein pegelstand.php könnte im Head so etwas ausgeben:

<!doctype html>
<html lang="de">
<head>
  <title>Auto-Refresher</title>
  <meta http-equiv="refresh" content="5; URL=pegelstand.php">
</head>
<body>
   ... 
</body>
</html>

Alle anderen Methoden brauchen Javascript.

2. Man kann irgendwo auf die Seite ein kleines Script stellen, das nach X Sekunden location.reload() ausführt. Wo das Script steht, ist relativ egal.

<!doctype html>
<html lang="de">
<head>
  <title>Auto-Refresher 2</title>
  <script>
    setTimeout(function() { location.reload(true); }, 5000);
  </script>
</head>
<body>
   ... 
</body>
</html>

Beide Methoden tun das Gleiche: sie laden die Seite nach 5 Sekunden komplett neu, das sieht aber meistens mies aus, weil die Darstellung flackern kann und die Seite nicht unbedingt auf ihrer Scrollposition bleibt. Je nach Browser kann meta refresh funktionieren oder auch nicht. Das true beim location.reload() entspricht dem Drücken der Control-Taste beim Seitenrefresh mit F5. Du kannst es auch mal probehalber weglassen; wenn Du eine PHP Seite abrufst, sollte der Server das nicht cachen.

Bessere Methoden verwenden Ajax-Techniken oder Websockets. Damit bekommt man es flackerfrei. Websockets lassen sich auf typischen Shared Hosting Angeboten nicht umsetzen, dafür braucht man Server, auf denen man eigene Prozesse starten kann.

Rolf

--
sumpsi - posui - obstruxi