ホームページ > バックエンド開発 > PHPチュートリアル > ob_flush と flash_PHP チュートリアルの違いを深く理解する

ob_flush と flash_PHP チュートリアルの違いを深く理解する

WBOY
リリース: 2016-07-13 17:48:31
オリジナル
1235 人が閲覧しました

作者:ラルエンク
マニュアルの ob_flush/flush の説明は出力バッファのリフレッシュであり、併用する必要があるため、混乱を招く人も多いと思います...

実際、それらは異なるオブジェクトに対して動作する場合があります。場合によっては、フラッシュは何も行いません。
ob_* 一連の関数は、PHP 自体の出力バッファを操作します。

つまり、ob_flush は PHP 自身のバッファをフラッシュすることになります。

そして、厳密に言えば、これは PHP が Apache モジュール (ハンドラーまたはフィルター) としてインストールされている場合にのみ実際に効果を持ちます。Web サーバー (特に Apache と見なすことができます) のバッファーをリフレッシュします。
Apache モジュールの sapi の下で、flush は sapi_module のフラッシュ メンバー関数ポインタを呼び出すことによって間接的に Apache の API を呼び出します。 ap_rflush は Apache の出力バッファを更新します。 もちろん、マニュアルには、他にもいくつかの Apache モジュールがあると記載されています。この行動の結果は変わるかもしれません...

mod_gzip などの一部の Apache モジュールは、独自の出力をキャッシュする場合があります。
これにより、flush() 関数によって生成された結果がクライアント ブラウザにすぐに送信されなくなります。

ブラウザでも、受信したコンテンツを表示する前にキャッシュします。たとえば、Netscape
ブラウザは、改行または HTML タグの先頭を受信するまで、コンテンツをキャッシュします。 タグが受け入れられるまで、テーブル全体は表示されません。

Microsoft Internet Explorer の一部のバージョンは 256 のみを受け入れます
ページが表示され始める前にバイトがあるため、これを行うには追加のスペースを送信する必要があります
一部のブラウザではページのコンテンツが表示されます。
したがって、この 2 つを使用する正しい順序は、最初に ob_flush、次にフラッシュです

もちろん他のsapiではflushを呼び出すことはできませんが、コードの移植性を確保するために併用することをお勧めします


http://www.bkjia.com/PHPjc/478425.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/478425.html技術記事著者: Laruenc マニュアルの ob_flush/flush の説明では、両方とも出力バッファを更新するので、一緒に使用する必要があるため、実際には異なるオブジェクトに対して動作するため、多くの人が混乱することになります...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート