Walter: Seitenausgabe vor Scriptende

Hallo,

mein Problem ist, dass ich eine Script geschrieben habe, dass u.U. eine etwas längere Laufzeit hat.

Ich würde aber gerne vorher schon eine Meldgung ausgeben, die auch angezeigt wird, während das Script aber noch nicht fertig ist.

Oder auch z.B. den Fortschritt..

Wenn ich aber eine Ausgabe erzeuge wird die Seite bei mir erst angezeigt, wenn das Script vollständig abgearbeitet wurde. Gibt
es eine Möglichkeit schon vorher eine Browserausgabe zu erzwingen?

bis dann,

Walter

  1. mein Problem ist, dass ich eine Script geschrieben habe, dass u.U. eine etwas längere Laufzeit hat.

    Wenn ich aber eine Ausgabe erzeuge wird die Seite bei mir erst angezeigt, wenn das Script vollständig abgearbeitet wurde. Gibt
    es eine Möglichkeit schon vorher eine Browserausgabe zu erzwingen?

    flush();

    Funktioniert aber nicht unter Garantie, da zwischen der Ausgabe durch PHP und dem Lesen auf dem Bildschirm noch mindestens der Webserver mit einem Cache und der Webbrowser mit seinen Algorythmen zur Berechnung der Elementpositionen (insbesondere bei <table>, was normalerweise erst angezeigt wird, wenn das abschließende </table> angekommen ist) stehen.
    Andere Dinge wie mod_gzip bzw. das PHP-Äquivalent zlib.compression sowie Proxy-Server können da natürlich auch noch reinfunken.

    Gruß,
      soenk.e

    1. Hallo,

      flush();

      Danke für den Tipp!

      Bis dann,

      Walter

    2. Wenn ich aber eine Ausgabe erzeuge wird die Seite bei mir erst angezeigt, wenn das Script vollständig abgearbeitet wurde. Gibt
      es eine Möglichkeit schon vorher eine Browserausgabe zu erzwingen?

      flush();

      Funktioniert aber nicht unter Garantie, ...

      eine denkbare Möglichkeit wäre noch, mit dem Skript
      eine temporäre HTML-Seite zu erzeugen (mit Session-Management
      o.Ä.), die mittels http-refresh immer wieder sich selbst
      aufruft und einen zweiten Prozess zu starten. Der zweite Prozess
      nimmt sich dann die längere Berechnung (oder was auch immer) vor
      und schreibt am Ende die temporäre HTML-Seite neu
      (ohne http-refresh und mit Meldung, dass Berechnung
      fertig sei o.Ä.). Zwischendurch könnte der zweite Prozess
      auch die temporäre HTML-Datei zwecks Fortschrittsanzeige usw.
      modifizieren.

      Ist aber nicht ganz einfach da,

      - auf dem Server neue Dateien mit eindeutigem
          Namen erzeugt werden müssen (Session-bezogen),
        - vom Skript aus weitere Prozesse (oder Threads)
          gestartet werden müssen und
        - viele Webprovider derartiges womöglich nicht
          auf ihren Servern zulassen.

      Viele Grüße

      Andreas