ob_flushflushのマニュアルのob_flush/flushの説明は、両方とも出力バッファをリフレッシュするものであり、一緒に使用する必要があるため、多くの人に混乱を引き起こします。 ..
実際には、それらの操作オブジェクトは異なります。
ob_* シリーズの関数は、PHP 自体の出力バッファーを操作するため、ob_flush はバッファーを更新します。
そして、厳密に言えば、これは、PHP が Apache モジュール (ハンドラーまたはフィルター) としてインストールされている場合にのみ、Web サーバー (具体的には Apache と考えられます) をリフレッシュします。 apache モジュールの sapi は、sapi_module のフラッシュ メンバー関数ポインタを呼び出すことで間接的に Apache の API を呼び出します。 ap_rflush は Apache の出力バッファを更新します。 もちろん、マニュアルには、結果を変更する可能性のある Apache の他のモジュールもあるとも記載されています。
mod_gzip などの一部の Apache モジュールは、独自の出力をキャッシュする場合があり、そのため、flush() 関数によって生成された結果がクライアントのブラウザーにすぐに送信されなくなります。 ブラウザでも、受信したコンテンツを表示する前にキャッシュします。たとえば、Netscape ブラウザは、改行または HTML タグの先頭を受け取るまでコンテンツをキャッシュし、 タグを受け取るまでテーブル全体を表示しません。
Microsoft Internet Explorer の一部のバージョンは、256 バイトを受信した後にのみページの表示を開始するため、これらのブラウザーがページのコンテンツを表示できるようにするには、追加のスペースを送信する必要があります。 したがって、この 2 つを使用する正しい順序は、最初に ob_flush、次にフラッシュです。もちろん、他の sapi では、flush を呼び出すことはできませんが、コードの移植性を確保するために、これらを一緒に使用することをお勧めします。
PHP flash と ob_flush の違いは何ですか?
http://www.bkjia.com/PHPjc/902436.html
www.bkjia.com