Mailinglisten-Archive |
Thomas Richter wrote: > du redest aber die ganze zeit ueber den "stop" button im browser... Als Analogie zu dem was ich erreichen will. > vielleicht ist dann folgendes fuer dich interessant: > http://www.php.net/manual/de/features.connection-handling.php [Auszug aus dem Manual gesnippt] Ich möchste ja nicht abfragen, ob der User STOP gedrückt hat, sondern einen ähnlichen Zustand auf der PHP Seite erzeugen. Ich habe einen Programmpart, der sehr Zeitintensiv ist. Der Browser selbst sollte allerdings recht schnell bedient werden. Die Berechnungen können also Problemlos im "hintergrund" ohne Ausgabe weiterlaufen. > ich hoffe die situation ist jetzt etwas klarer! Jein ;-) Die Dokumentation ist ungenau im Zusammenhang zwischen exit(); und register_shutdown_function(); Ereignisliste: 1. Apache erhält Request 2. Apache ruft die PHP Seite auf 3. PHP arbeitet die Seite ab 4. Apache erhält Abbruchsignal durch User 5. PHP erkennt Abbruch und führt registrierte Funktionen aus. Ich möchte nun das Ereignis #4 künstlich herbeiführen. Da war für mich der mehr oder weniger logische Schluss die() bzw. exit() aufzurufen. Damit wird das Programm beendet. PHP ruft entsprechend die registrierter Funktionen auf. Scheinbar scheint das in PHP so realisiert zu sein, das exit() bzw. die() aufgeschoben wird, bis alle Shutdownfunktionen abgearbeitet sind. Das ist entweder ein Bug, oder eben nicht erwähnt. In diesem Fall bleibt mir wohl nur das Spawnen eines separaten PHP-Processes, das die rechenintensiven Sachen durchführt, denn den Browser des User warten zu lassen (in meinem Fall ein anderes PHP-Script) ist nicht praktikabel. > thomas -- Andreas Lange
php::bar PHP Wiki - Listenarchive