Peter Unger: Wie aktualisiert sich eine HTML Seite selbst (war: Frage zum Wiki-Artikel „Programme ausführen“)

problematische Seite

wie kann man Inhalte einer webpage permanent aktualisieren ?

  1. problematische Seite

    Hallo,

    wie kann man Inhalte einer webpage permanent aktualisieren ?

    den Finger auf F5 lassen.

    Beschreib mal bitte genauer, was du vorhast.

    Gruß
    Kalk

  2. 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
    1. problematische Seite

      Zuerst einmal danke für die Antworten.

      Ich bin Rentner und habe nahezu 60 Jahre IT hinter mir und kenne etwa 5 Betriebssysteme, 3 Datenbanksysteme, ungef. 25 Programmiersprachen, etliche Anwendungssysteme, viele, viele Anwendungen und mindestens genauso viele Probleme - technischer und organisatorischer Art. Mir haben die Herausforderungen des Umgangs mit Computern und Menschen immer viel Spaß und viel Arbeit gemacht.

      Und jetzt versuche ich, Möglichkeiten aufzutun, alle Komponenten miteinander zu verbinden, um KI oder AI mit einer Plattform bestehender und neuer Technologien zu unterstützen. Ich verfüge über eine vielschichtige Entwicklungsumgebung und versuche einen Teil der Ziele zu realisieren und gleichzeitig mit möglichst wenig Abhängigkeiten auszukommen. Aus Erfahrung weiß ich, dass Firmen aufgekauft werden oder untergehen und deren Soft- oder Hardware ebenfalls vom Markt verschwindet, oder nicht mehr gewartet wird. Daher versuche ich mit genormten, nativen Plattformen auszukommen, denn was nützt eine heute elegante Lösung, wenn deren Grundlage morgen obsolet ist. Ich werde dieses relativ kleine Problem gelöst bekommen, wichtig ist mir dabei, dass die Lösung einfach und damit nachhaltig ist.

      😀😀

      1. problematische Seite

        Hi,

        Ich bin Rentner und habe nahezu 60 Jahre IT hinter mir und kenne etwa 5 Betriebssysteme, Ich werde dieses relativ kleine Problem gelöst bekommen, wichtig ist mir dabei, dass die Lösung einfach und damit nachhaltig ist.

        mit 60 Jahren IT-Erfahrung solltest Du wissen, daß das wichtigste zur Lösung des Problems ist, das Problem erst mal richtig zu formulieren.

        wie kann man Inhalte einer webpage permanent aktualisieren ?

        hier ist z.B. schon als erstes unklar, ob

        • der Browser die Seite möglichst oft abrufen (aktualisieren) soll
        • der Server die Inhalte möglichst oft durch neue Inhalte ersetzen soll

        Weitere Unklarheiten ergeben sich dann, wenn das klargeworden ist …

        cu,
        Andreas a/k/a MudGuard

      2. problematische Seite

        Hallo Peter,

        habe nahezu 60 Jahre IT hinter mir

        Respekt, da fehlen mir noch 15 (oder 20, wenn ich die Daddelei zu Schulzeiten weglasse).

        5 Betriebssysteme, 3 Datenbanksysteme, ungef. 25 Programmiersprachen, etliche Anwendungssysteme

        Okay. Sind da auch welche bei, die hier hilfreich sind? Ich meine, mit zOS, DB2 und COBOL kommst Du nicht wirklich weiter. Oder – äh – doch, mit Websphere und CICS machst Du auch einen Mainframe zum Webserver 😉

        Und jetzt versuche ich, Möglichkeiten aufzutun ... nachhaltig ist.

        Sehr interessant, aber dieser visionäre Absatz hilft beim Verständnis deines Problems nicht weiter.

        • Ist dein Problem mit den beiden Ideen, die ich beschrieben habe, vielleicht schon gelöst? Wenn ja: Skip To End 😉
        • Mit welcher Sprache generierst Du die Seite, die sich refreshen soll?
        • Ich nehme an, dass Du die Webpage über einen handelsüblichen Webserver auslieferst?
        • Welche Art Server setzt Du ein? Ist es lokal bei Dir, ein billiger Shared-Hoster, ein Rootserver?
        • Bist Du mit einem Fullpage-Refresh, wie ich ihn skizziert habe, zufrieden oder strebst Du eine technisch hochwertigere Lösung mit AJAX oder Websockets an?
        • Wie hoch ist das Datenvolumen, das pro Refresh zu übertragen ist?

        Die Frage nach der Updatefrequenz ist durchaus auch relevant, weil sie für den Betrieb und die daraus folgende Serverbelastung von Bedeutung ist. 100.000 Benutzer, die im Sekundentakt Updates verlangen, stellen andere Server- und Designanforderungen als ein einziger, der alle 10 Sekunden updated.

        Aber vielleicht solltest Du auch mal genauer beschreiben, was Du da realisieren willst. Das Gesamtkunstwerk eher nicht, aber zumindest das, was auf der Webpage stehen soll. Die Formulierung "wie kann man eine webpage permanent aktualisieren" weckt zwar Vermutungen, aber damit kann man auch schief liegen. Als Diamant-ITer solltest Du hinreichend oft Userkontakte gehabt haben, um zu wissen, dass eine ungenaue Problembeschreibung zu unpassenden Angeboten führt, wenn der ITer nicht zufällig gute Kenntnisse der Problemdomäne hat.

        Rolf

        --
        sumpsi - posui - obstruxi
  3. problematische Seite

    Inhalte kann man ganz einfach aktualisieren, wenn der Client die Daten vom Server permanent neu anfragt. Ein einfaches srtTimeout reicht aus. Man muss nur sicherstellen, dass mögliche Fehler nicht zu einem Scriptabbruch führen. Für das Abfragen kann man verschiedene Techniken verwenden, z.B. einfaches fetching via http(s) oder auch winsocket.

    Gruss

  4. problematische Seite

    Hallo Du,

    wie kann man Inhalte einer webpage permanent aktualisieren ?

    Z. B. mit Websockets

    Das ist nur ein Link von vielen möglichen.

    Grundsätzlich ist das Nachladen (Pull) oder Nachliefern (Push) von definierten Teilen des Dokumentes dem Neuladen des gesamten Dokumentes vorzuziehen.

    Die Änderungen sollten keine/wenig Designänderungen am DOM verursachen. Das bedeutet, dass der zu aktualisierende Bereich in der HTML-Struktur im DOM und im zugehörigen CSS im DOM keine Änderungen verursachen sollte, sonst fängt die Seite an zu zappeln. Die Sache mit "liquid Design" oder "fluid Design", oder wie das auch immer genannt wird, widerspricht also meistens dem Wunsch, automaitsche Änderungen (in "Echtzeit") vornehmen zu können.

    Und eventuell sollte man auch einen Schalter (Checkbox) dafür einrichten, um automatische Änderungen anzuhalten oder abzustellen.

    LG Linksetzer 2024