4

私はこのコードを持っています:

   set_time_limit(0);
   header("Cache-Control: no-cache, must-revalidate");
   header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
   ob_flush();
   flush();
   $start = time();
   $secs = time() - $start;
   while ($secs <= 300)
   {         
    echo "this script has been running for $secs seconds.\n";
        ob_flush();
        flush();
        sleep(1);
   }

このページを表示したときにやりたいことは、次のように、スクリプトが実行されている時間をリアルタイムで確認することです。

  • スクリプトは 1 秒間実行されています。
  • スクリプトは 2 秒間実行されています。
  • …………
  • スクリプトは 300 秒間実行されています。

代わりに、5分間連続して「読み込み中」のサインが表示された空白のウィンドウが表示され、5分後に突然、一度に1つのメッセージを受け取るべきだったこれらのメッセージが大量に殺到します。

誰かが私が間違っていることを説明できますか?

4

1 に答える 1

3

ob_flushありませんflushob_flush開いているオブジェクト バッファをクリアします。オブジェクト バッファを開いていないため、何もフラッシュされません。

また、Web ブラウザや Web サーバー ソフトウェアは、出力できるようになるまでデータを保持することで有名です。GZIPing がオフになっていることと、正常なブラウザーを使用していることを確認してください。

于 2010-11-16T00:37:39.390 に答える