Linuchs: Wie funktioniert die Aktualisierung einer geladenen Webseite?

problematische Seite

Moin,

auf einer Seite rufe ich per Ajax alle 10 sec den Server an und frage, welcher Termin als letzter gelesen wurde. Grund: Etwas "Leben" auf die Seite bringen.

Javascript ist also damit beschäftigt, alle 10 sec den Server zu nerven, echte Neuerungen kommen aber nur so alle 3 .. 5 Minuten.

Ich erinnere mich an eine Technik, dass sich der Server bei der Webseite meldet, wenn es etwas Neues gibt.

Wie heißt diese Technik und wo kann ich mich einlesen?

Gruß, Linuchs

  1. problematische Seite

    Hallo Linuchs,

    Wie heißt diese Technik und wo kann ich mich einlesen?

    Server Push (HTTP/2) https://www.cyon.ch/blog/HTTP2-Server-Push

    Bis demnächst
    Matthias

    --
    Pantoffeltierchen haben keine Hobbys.
    ¯\_(ツ)_/¯
    1. problematische Seite

      "Das war nichts": Die von Dir verlinkte Webseite befasst sich nicht mit der gestellten Frage nach dem Push neuer Inhalte sondern mit dem früherem, insoweit "schnellerem" (Die darzustellende Seite kann früher gerendert werden) Download von "Interior" wie Schriften, CSS, Grafiken e.t.c. p.p.

  2. problematische Seite

    Ich erinnere mich an eine Technik, dass sich der Server bei der Webseite meldet, wenn es etwas Neues gibt.

    Wie heißt diese Technik und wo kann ich mich einlesen?

    WebSockets

    1. problematische Seite

      Neben den Websockets gibts es noch:

    2. problematische Seite

      Ergänzung zum Link:

      Hier mal ein Beispiel für PHP: https://github.com/sanwebe/Chat-Using-WebSocket-and-PHP-Socket

      Die index.php liefert die webseite und die server.php wird in dem Beispiel so gestartet, dass diese einen eigenen Web-Socket auf Port 9000/TCP "aufmacht" und muss also durchlaufen. Das ist in vielen Fällen (shared hosting ohne eigenen (V-)Server) nicht machbar.

      Die Angabe des localhosts in der index.php und der server.php ist insofern irreführend als dass das nicht der localhost sein muss, es wird bei einer realen Anwendung also der eigene, reale Server irgendwo im Internet sein.

  3. problematische Seite

    Hallo Linuchs,

    es gibt mehrere Techniken, mit denen der Server einen Client benachrichtigen kann.

    • Die genannten Websockets
    • Server Sent Events (SSE)

    Und es gibt Techniken, mit denen man sowas simulieren kann

    • Long Polling
    • Forever Frame (IE only)

    Das sind die 4 Varianten, die die SignalR Library von Microsoft einsetzt, es mag mehr geben.

    Grundproblem ist, dass Du für Server-Push Techniken auf dem Server eine Komponente brauchst, die den Push managen kann. Der klassische Apache tut das nicht, weil der auf Request-Response-Forget ausgelegt ist. Du brauchst einen eigenen Serviceprozess, der sich um die Pushes kümmert - guck mal hier.

    Rolf

    --
    sumpsi - posui - clusi
    1. problematische Seite

      Hallo Rolf,

      der verlinkte Text ist von Montag, 13. Mai 2013

      Gilt das noch?

      Gruß, Linuchs

      1. problematische Seite

        Hallo Linuchs,

        gute Frage. Nächste Frage 😳, bitte...

        Ich habe jetzt nicht sehr aufwändig nach PHP spezifischen Texten recherchiert. In der Firma verwenden wir eine ASP.NET Ökologie und SignalR, aber auch nicht an vielen Stellen. Das Grundproblem, dass Server-Pushes eine andere Servertechnik brauchen als ein einfaches Request-Response Web, ist aber unverändert aktuell.

        Rolf

        --
        sumpsi - posui - clusi
      2. problematische Seite

        Tach!

        der verlinkte Text ist von Montag, 13. Mai 2013

        Gilt das noch?

        Ja, an WebSockets hat sich nichts grundlegendes geändert.

        dedlfix.