Probleme mit sleep und flush

masta

Erfahrenes Mitglied
Guten Tag...folgendes Script:

PHP:
<?
echo "sofort";
flush ();
sleep (5);
echo "nach 5 sekunden";
?>

Ich erwarte das "sofort" sofort angezeigt wird und "nach 5 Sekunden"
erst nach % Sekunden angezeigt wird...aber genau das passiert nicht, sondern nach 5 Sekunden wird beides gleichzeitig angezeigt!

Danke für die Hilfe!

Gruß Patrick
 
Sorry, aber das geht genauso, wie ich es gesagt habe, hab auch dein Skript kopiert, funktioniert tadellos !

Muss irgendwie an den PHP EInstellungen liegen, sonst kann ich mri das nciht erklären !
 
Ich kann es nur immer wieder sagen, REFERENZ UND KOMMENTARE LESEN!!!!

http://www.php.net:
http://www.php.net/manual/en/function.sleep.php


it is a bad idea to use sleep() for delayed output effects as

1) you have to flush() output before you sleep

2) depending on your setup flush() will not work all the way to the browser as the web server might apply buffering of its own or the browser might not render output it thinks not to be complete

netscape for example will only display complete lines and will not show table parts until the </table> tag arrived

so use sleep if you have to wait for events and don't want to burn to much cycles, but don't use it for silly delayed output effects!
 
verzögerte Effekte mit PHP zu simulieren bringt doch sowieso nichts oder? naja man könnte so eine "schlechte verbindung" simulieren und sich neue interessierte user vom hals halten *g*.
 
ich verschicke meine newsletter in pakete also sprich immer 500 emails...und jetzt möchte ich das nach jedem paket eine ausgabe kommt.
 
also du schickst 500 packete, dann wieder 500 und dann wieder 500, bis du alle emails durchhast oder wie?

gesetzt den fall, du hast deine emails in ner mysql-datenbank, dann lies doch nur immer 500 emails aus, an die dann die newsletter verschickt werden, dann liest du die nächsten 500 aus usw. also dass du ne schleife machst.

das sleep dient laut dem kommentarauszug von php.net dazu um in whileschleifen ne pause einzulegen und abzuwarten bis die erwartete aktion eingetroffen ist. wahrscheinlich aus performancegründen.
 
Zurück