Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Pufferung vom Server abschalten





Frage

Hallo Ich habe unter Win98 einen kleinen Apache-Server (Ver. 1.3.24) aufgesetzt und zudem perl und mysql installiert. Jetzt wollte ich testen, ob ein Perl-Skript gepuffert wird oder nicht, bevor es der Server an den Client sendet. Ein Beispiel-Skript sieht z.B. so aus: #!perl -wT use strict; print "$ENV{SERVER_PROTOKOL} 200 OK\n"; print "Server: $ENV{SERVER_SOFTWARE}\n"; print "Content-type: text/html\n\n"; print "OK, beginne zeitintensive Verarbeitung ... \n"; # Die Ausgabepufferung von Perl abschalten $| = 1; for ( my $loop = 1; $loop <= 5; $loop++ ) { print "Schleifendurchlauf: $loop\n"; # hier wird eine Zeitintensive Aufgabe bearbeitet sleep 1; } print "Fertig!\n"; --------------------------- Mit dem Befehl $| = 1 wird die Pufferung von Perl abgeschaltet. Wieso werden die einzelnen Zeilen der Schleife jedoch erst nach den abgelaufenen 5sec. angezeigt und nicht wie gewünscht sofort? Ich hoffe ihr konntet das jetzt verstehen, ansonsten fragt nochmal nach. thx Guido

Antwort 1 von florian99

das liegt an der perl-umsetzung für windows. versuchs mal unter unix da funzt es

Antwort 2 von MixMax

versuche mal den befehl
flush();

Antwort 3 von semi

Muss man die Pufferung nicht vor der ersten Ausgabe (auch vor dem Header)
deaktivieren, damit es eine Wirkung hat?
Ich sehe das ganze wie folgt:

Der Header wird in Deinem Beispiel gepuffert, alles nach $| = 1; "nicht mehr".
Da der Server aber zuerst den Header schicken muss, hat das Ausschalten der Pufferung keine Wirkung und alles wird gepuffert.
Oder sehe ich es falsch?

Antwort 4 von Kwirly

@MixMax:

Kannst du mir das mit flush(); noch etwas genauer erklären? Denn alles was nach diesem Befehl ausgegeben werden soll, wird nicht angezeigt.


@semi:

Alos bei mir machte es irgendwie keinen Unterschied, ob ich diese Zeile vor oder nach dem Header stehen hatte. Ich habe auch mal die ersten zwei Header entfernt. Da hat sich auch nix getan.

Antwort 5 von Kwirly

Hat keiner einen Tip für mich?

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: