最初に PHP の出力順序を明確にします
1.php 出力キャッシュがオンになります: echo,print -> ブラウザ バッファリング -> ブラウザ ディスプレイ
; PHP 出力キャッシュがオンになっていない: echo、print -> サーバー バッファリング -> ブラウザ バッファリング -> ブラウザの表示
ブラウザの出力キャッシュも明確にします: IE は 256 バイト、Chrome と FireFox は 1000 バイトです。これ ブラウザーは、長さまたはスクリプトが終了した場合にのみページにデータを出力します
使用されるいくつかの PHP 設定と API について説明します: 1.php.ini の output_buffering 設定
•Off: PHP 出力キャッシュをオフにすることを意味します•オン: 無限の出力キャッシュを開きます
•4096: サイズ 4096 バイトの出力キャッシュを開きます
2.php.ini の implicit_flush 設定
• オン: 各出力後の自動フラッシュを示します (エコーなど) , print) flash() 関数を呼び出した後、直接出力します •Off: On とは対照的に、各出力後に flash() は呼び出されません。サーバーのバッファリングがいっぱいになるまで出力されませんが、flush() を使用できます。 ) 関数をオンにしても問題ありません。より柔軟です
3.ob_flush() 関数: PHP バッファリングからデータを取り出し、サーバーのバッファリングに入れます
4.flush() 関数: サーバーのバッファリングからデータを取り出し、ブラウザのバッファリングに入れます
5.ob_start() 関数: この関数については、オンにすると出力が行われないため、今はあまり知りません。 ob_flush() と flash() を使用しても、output_buffering=Off の場合は、ob_start() を使用しても、データはすぐに出力されないことがわかります。 out_buffering=On の場合、ob_start() を使わなくても出力データは PHP でキャッシュできるので、とりあえず無視します
それでは、コード (output_buffering=4096、implicit_flush=Off に設定)
マニュアルの ob_flush/flush の説明は出力バッファをリフレッシュするものであり、併用する必要があるため、多くの人に混乱を引き起こす可能性があります...
実際には、異なるオブジェクトに対して動作する場合もあります。
場合によっては、フラッシュは何も行いません。ob_* 系関数はPHP自体の出力バッファを操作します。
つまり、ob_flush は PHP 自身のバッファをフラッシュすることです。
そして厳密に言えば、これは PHP が Apache のモジュール (ハンドラーまたはフィルター) としてインストールされている場合にのみ実際に効果を持ちます。Web サーバー (特に Apache と考えられます) のバッファーをリフレッシュします。
Apache モジュールの sapi の下で、flush は sapi_module のフラッシュ メンバー関数ポインターを呼び出すことで間接的に Apache API を呼び出します。 ap_rflush は Apache の出力バッファーを更新します もちろん、マニュアルには Apache の他のモジュールもあると記載されています。このアクションの結果が変更される可能性があります。www.bkjia.com
1. mod_gzip などの一部の Apache モジュールは、それ自体で出力キャッシュを実行する可能性があります。2. これにより、flush() 関数によって生成された結果がクライアントのブラウザーに送信されなくなります。すぐに。
3.
4. ブラウザでも受信したコンテンツを表示する前にキャッシュします。たとえば、Netscape
5. ブラウザは改行または HTML タグの先頭を受け取るまでコンテンツをキャッシュし、 タグを受け取るまでテーブル全体は表示されません。
7.
8. Microsoft Internet Explorer の一部のバージョンは、256 バイトを受信した後でのみページの表示を開始するため、これらのブラウザーがページのコンテンツを表示できるようにするには、いくつかの追加のスペースを送信する必要があります。
したがって、この 2 つを使用する正しい順序は、最初に ob_flush、次にフラッシュです。
もちろん、他の sapi では、flush を呼び出すことはできませんが、コードの移植性を確保するために、次のことをお勧めします。一緒に使ってください。
http://www.bkjia.com/PHPjc/327577.html