6

これを修正する必要があります。
これは私のコードの一部です

<?php
$number = 30;
while($number > 0) {
 $number--;
 sleep(30);
 print "$number . Posted<br>";

}
?> 

ループ内のループプロセスは実際にははるかに大きく、重要なものを置くだけです。

とにかくあなたが見ることができるようにそれは30投稿(30秒待つ)29投稿(30秒待つ)28投稿(30秒待つ)を印刷するはずです
しかし
代わり

それ

ループ

が終わるまで待ってからそれを一度にすべて印刷します。これに対する修正はありますか?私はajaxメソッドを考えていましたが、何も知りません。

4

5 に答える 5

16

みんなが理由を説明してくれてうれしいです。

これは、デフォルトでは、PHPがブラウザに何かを「フラッシュ」する前にすべてを処理するためです。各行を印刷するだけで、その情報がバッファに保存され、PHPの実行が終了するとすべて同時に印刷されます。

PHPでそのコンテンツを行の直後にブラウザにフラッシュする場合は、各行のflush()後に呼び出す必要があります。そうすると、各行が呼び出された後、一度に1行ずつテキストが出力されます。

于 2010-03-04T19:44:28.020 に答える
4

flush()印刷後にお電話ください。

于 2010-03-04T19:41:22.037 に答える
2

フラッシュを使用する必要があります()

于 2010-03-04T19:42:02.897 に答える
1

flush()を使用したループの例は次のとおりです。

<?php
 ob_start();
 for ($i = 0; $i < 10; $i++)
 {
   echo "<div>" . time() . ": Iteration $i</div>";
   sleep(1);
   ob_flush();
   flush();
 } 
 ob_end_flush();
?>

phpにメッセージの処理を強制すると、実行時間が長くなるため、頻繁にフラッシュしないでください。

于 2013-01-30T00:36:18.210 に答える
0

バッファを挿入 またはフラッシュ\nする場合があります。echoprint

于 2010-03-04T19:43:03.783 に答える