少しわかりにくいかもしれませんが、いくつかの例で説明しましょう:
コードをコピーします コードは次のとおりです:
echo 'Example:'
echo '; あるべきか、そうでないのか、それが問題です。';
file_put_contents('log.txt', 'あるべきか、そうでないのか、それが問題です。');ブラウザ (コマンドラインではありません!) このスクリプトを実行すると、対応する文字列は出力されませんでしたが、対応するファイルが生成されたことがわかりました。これは、fastcgi_finish_request を呼び出した後、クライアントの応答が終了したが、同時にサーバー スクリプトが実行し続けていることを示しています。
この機能を適切に使用すると、アイロンが熱いうちに打つための別の例を次に示します:
コードをコピーします
コードは次のとおりです:
echo '例:'; file_put_contents('log.txt', date('Y-m-d H:i:s') . "ビデオ n をアップロード",
file_put_contents(' log.txt', date('Y-m-d H:i:s ') . "形式 n を変換",
file_put_contents('log.txt', date('Y-m-d H:i:s); ') . "画像 n を抽出"、
;
時間のかかる操作をシミュレートするためにコード内でスリープが使用されています。ブラウジングはブロックされませんが、詳細についてはログを参照してください。
最後に思い出させていただきますが、Yahoo は Web サイトの高速化のためのベスト プラクティスの中で、バッファを早めにフラッシュすることについて言及しました。これは、PHP のフラッシュ メソッドを使用して、表面上はコンテンツをできるだけ早くクライアントに送信することです。 fastcgi_finish_request はこの記事で紹介されているものと似ていますが、本質的にはまったく異なりますので、混同しないでください。
再投稿 PS: このメソッドを調べてみました。呼び出されると、応答が送信され、接続が閉じられますが、flush を呼び出したり、Echo を高速化したりするのと比較すると、PHP の実行は終了しません。以前紹介しましたが、この方法はより簡単です
さらに、コードの移植性の観点から、次のコードをコードに添付できます:
コードをコピーします
コードは次のとおりです:
if (!function_exists("fastcgi_finish_request ")) {
function fastcgi_finish_request() { }
} は非 fpm 環境でコードのデプロイメントの問題を引き起こしません。
http://www.bkjia.com/PHPjc/323231.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/323231.html
技術記事
少しわかりにくいかもしれませんが、いくつかの例で説明しましょう: 次のようにコードをコピーします: ?php echo 'Example:'; fastcgi_finish_request(); echo 'To be, or not to be that...