Hello,
...und noch ein Test:
<?php #### connection.php ####
Testet auf Userabort
set_time_limit(1);
echo "<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.1 Transitional//EN">\n";
echo "<HTML>\n";
echo "<HEAD>\n";
echo " <TITLE>Dauerlauf</TITLE>\n";
echo "</HEAD>\n";
echo "<BODY>\n";
$ok = ignore_user_abort();
echo $ok."<br />";
while (!connection_aborted())
{
$dir = @mkdir("test");
$fehler = $php_errormsg;
echo getmypid()." ".time()." $fehler ".(($dir===false)?"FALSE":"TRUE")."<br />";
flush();
sleep(1);
}
echo "</body>\n";
echo "</html>";
?>
----------------------------------------------------
Dieses Script läuft nun schon ewig auf diversen Plätzen in diversen Browserfenstern. Der Server lacht nur drüber... ->kaum Last.
Das mkdir() sthet eigetlich nur dirn, um einen Fehler zu provozieren. Der bleibt aber aus. Allerdings reagiert die Funktion durchaus auf Anlegen können oder nicht (True/False).
Woran kann es leigen, dass im Client bei Erstaufruf des Scriptes ca. vier bis fünf Sekunden nichts erscheint und dann der ganze Buffer auf einmal angezeigt wird (die ersten Zeilen eben)? Wenn man Reload klickt, reagieren die Browser aber sofort mit Ausgabe.
Woran kann es liegen, dass das Time-Limit nicht anschlägt? Ist die echte Ausführungszeit wirklich soooo gering, oder wird Time-Limit durch sleep() außer Gefecht gesetzt / rückgestzt. Ich habe zwar die Usernotes von PHP.net gelesen, aber so richtig genau scheint das ja niemand zu wissen...
Liebe Grüße aus http://www.braunschweig.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen