Timing der HTML Ausgabe
Stefan
- cgi
Hallo,
ich lasse ein Perl Script laufen, welches Dateien durchsucht und XML files auf dem Server generiert. Ausserdem soll es dann auch eine HTML Seite mit Statusinformationen an den Browser senden, auch um dem User zu zeigen, dass der Server was tut.
Also so:
Sup!
Hmmm... bei PERL muß man dann die Ausgabe "ungepuffert" (unbuffered) machen bzw. flushen.
Sonst wartet das Skript, bis "genug" Ausgabe da ist, bzw. bis zu seinem Ende mit dem rausschreiben der Ausgabe zum Browser.
Vielleicht ist das bei PHP auch so?
Gruesse,
Bio
Hmmm... bei PERL muß man dann die Ausgabe "ungepuffert" (unbuffered) machen bzw. flushen.
Geht es hier nicht um Perl?
Setzte
$| = 1;
dann ist die Pufferung ausgeschaltet (der Langname dieser Variablen heißt $OUTPUT_AUTOFLUSH).
Gruß Frank
Hi Frank,
Geht es hier nicht um Perl?
Setzte
$| = 1;
dann ist die Pufferung ausgeschaltet (der Langname
dieser Variablen heißt $OUTPUT_AUTOFLUSH).
aber ob dann der Webserver selbst auch noch puffert (beim Einsatz von mod_gzip für dynamische Ausgaben täte er das beispielsweise), das steht auf einem anderen Blatt.
Viele Grüße
Michael
Hi,
ich lasse ein Perl Script laufen, welches Dateien durchsucht und XML files auf dem Server generiert. Ausserdem soll es dann auch eine HTML Seite mit Statusinformationen an den Browser senden, auch um dem User zu zeigen, dass der Server was tut.
Also so:
- File 1 oeffnen
- Meldung an Browser: File 1 geoeffnet
- Daten suchen
- Meldung an Browser: Daten gefunden
- File 2 oeffnen
- Meldung an Browser: File 2 geoeffnet
usw.
Leider passiert das folgende:- File 1 oeffnen
- Daten suchen
- File 2 oeffnen
- Meldung an Browser: File 1 geoeffnet
- Meldung an Browser: Daten gefunden
- Meldung an Browser: File 2 geoeffnet
usw.
Es ist also so, dass erst das ganze Dateihandling durchgefuehrt wird und am Ende die HTML Seite geladen wird.
Versteht Ihr was ich meine???
Ich mache alle Ausgeban mit "print" und schalte dafuer vor jedem Wechsel zw. File und Browser mit "select" zw. MYFILEHANDLE und STDOUT hin und her.
Warum passieren die Browser "prints" nicht chronologisch?
(Je nach Art meines Scripts und des HTML codes werden manchmal Teile der HTML-Seite auch schon zwischendurch geschrieben, nur habe ich eben keinen Einfluss darauf, wann das passiert...)
Richtig erkannt. Es ist nicht garantiert, daß der Browser die Seite häppchenweise bekommt.
Ein einziger Proxy dazwischen, der die Seite erst weiterreicht, wenn sie vollständig ist, und schon ist der ganze Effekt weg...
Außerdem gibt es Browser, die erst dann anfangen, die Seite darzustellen, wenn sie entweder komplett ist oder eine gewisse Mindestmenge an Daten angekommen ist...
Andreas