Seitenausgabe vor Scriptende
Walter
- php
0 Sönke Tesch0 Walter0 Andreas Pflug
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
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
Hallo,
flush();
Danke für den Tipp!
Bis dann,
Walter
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