0

while ループで大きなレコードを処理し、ループの反復ごとに画面の情報が出力されると、いつも古い画面を見ていることに気づきます。アクティビティ アイコンが回転しているだけです。これは、サーバーが何らかのデータを処理していることを示しています。

set_time_limit (3600);スクリプトの先頭に既にあるため、タイムアウトの問題は発生していません。気になるのは退屈な画面だけです。

ASP (私の出身地) では、response.flush を実行すると、問題が解決されます。ちなみに、ASPではいつもresponse.buffer=trueでバッファリングをONにしています。PHP では、これは非常に議論の余地のある領域です。ob をオンにするかオフにするかは、まだはっきりとわかりません。

ここでは、バッファリングをオンにしていませんob_start。問題は、なぜ echo がコンテンツをブラウザーにプッシュしないのかということです。

サーバーの while ループが情報を処理するときに、ブラウザが徐々に html チャンクを取得するようにするにはどうすればよいでしょうか?

4

1 に答える 1

0

出力バッファリングを無効にする、php.ini のバッファ サイズを減らす、暗黙的なフラッシュを使用する、または を使用して明示的にフラッシュするflush()。ただし、大量のデータを表示する必要がある場合は、コンテンツのページ付けを行うか、処理に時間がかかりすぎる場合にコマンド ライン スクリプトを使用することをお勧めします。

于 2012-05-03T19:04:23.840 に答える