Mailinglisten-Archive |
Michael Rappert wrote: > Hallo Andreas Lange, > Am Freitag, 23. April 2004 um 12:58 schrieben Sie: AL>> Das scheint nicht zu funktionieren. Der Browser wartet fleissig die 10 AL>> Sekunden auf das Ende des Scripts. Meine Erwartung war, das mit dem AL>> die() das Script für den Browser beendet ist und dann die Ausführung AL>> ende durchgeführt wird. AL>> Ist dieses Verhalten normal? > In meinen Augen schon, da PHP die Befehle von oben nach unten > abarbeitet. Der Befehl die() wird ausgeführt, wenn die übergebene > function(ende) mit seinem sleep fertig ist. > Es ist ja auch keine anderslautende Bedingung formuliert. Hmmm ... Aus dem Manual: Registers the function named by function to be executed when script processing is complete. In dem Fall endet das Script processing mit dem die(); Befehl. Ergo, an der Stelle müsste auch die Sache für den Browser gefrühstückt sein, denn alles was dann innerhalb der registrierten Funktion passiert wird ja nicht mehr an den Browser weitergeleitet. Interessant ist ja, die Funktion eigentlich dazu gedacht ist, bereinigende Sachen noch durchzuführen, wenn es zu einem unterwarteten Abruch kommt (durch den User, oder Timeout). Im Prinzip bin ich mir nicht mehr 100% sicher, das die(); bzw. exit(); tatsächlich das gleiche bewirkt, wie ein Klick auf den STOP Button. (Ja, die und exit können zwar noch was ausgeben, aber ansonsten hätte ich erwartet, das das gleiche passiert). Aus dieser Unsicherheit herraus habe ich ja noch einen weiteren Reply auf das Thema geschrieben, in dem der Sinn und Zweck diese "Krücke" beschrieben ist. Vielleicht gibt es ja eine ähnliche Lösung, die ähnlich simpel ist und vor allem funktioniert ;-) -- Andreas Lange
php::bar PHP Wiki - Listenarchive