ホームページ  >  記事  >  バックエンド開発  >  PHPのob_flushとflushの違いを理解する

PHPのob_flushとflushの違いを理解する

青灯夜游
青灯夜游転載
2020-03-31 16:39:022891ブラウズ

この記事では、ob_flush と flash の違いを紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。

PHPのob_flushとflushの違いを理解する

マニュアルの ob_flush/flush の説明では、出力バッファを更新し、組み合わせて使用​​する必要があるため、多くの人に混乱を引き起こす可能性があります...

実際には、これらは別のオブジェクトに対して動作します。場合によっては、フラッシュはまったく何もしません。

ob_* 一連の関数は、PHP 自体の出力バッファを動作させます。

したがって、 ob_flush これは、PHP 自身のバッファをリフレッシュすることです。

そして、フラッシュは、厳密に言えば、PHP が Apache モジュール (ハンドラーまたはフィルター) としてインストールされている場合にのみ実際に効果があります。Web サーバーをリフレッシュすることです (これは特に Apache のバッファを指すと考えてよいでしょうか)。

#apache modulesapi の下で、 # を呼び出すことで flush が呼び出されます。 ##sapi_moduleflush メンバー関数ポインターは、間接的に apacheapi を呼び出します: ap_rflushapache の出力を更新しますもちろん、マニュアルにもバッファがあります。そうは言っても、このアクションの結果を変更する可能性のある Apache の他のモジュールがいくつかあります。

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

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

Microsoft Internet Explorer の一部のバージョンは、256 バイトを受信した後にのみページの表示を開始するため、これらのブラウザがページのコンテンツを表示できるようにするには、追加のスペースを送信する必要があります。

したがって、この 2 つを使用する正しい順序は次のとおりです。最初に ob_flush、次にフラッシュです。

もちろん、他の sapi では、flush を呼び出すことはできません。

この記事は、https://blog.csdn.net/qq_28602957/article/details/66973431

から転載されています。

推奨:
PHP ビデオ チュートリアル

以上がPHPのob_flushとflushの違いを理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。