この記事では主に、ページの応答速度を向上させる fastcgi_finish_request の使い方を紹介します。一定の参考値があります。今、みんなに共有しています。困っている友達は参考にしてください。
FastCGI で PHP を実行している場合モードの場合、PHP FPM には fastcgi_finish_request というメソッドが用意されています。ドキュメントによると、このメソッドを使用するとリクエストの処理速度が向上します。ページ生成後に何らかの処理を実行できる場合は、このメソッドを使用できます。
Listen少し複雑に聞こえるかもしれませんが、いくつかの例で説明しましょう:
<?php echo '例子:'; fastcgi_finish_request(); /* 响应完成, 关闭连接 */ /* 记录日志 */file_put_contents('log.txt', '生存还是毁灭,这是个问题.');?>
ブラウザからこのスクリプトにアクセスすると、対応する文字列が次のとおりであることがわかります。出力されません。しかし、対応するファイルは生成されました。これは、fastcgi_finish_request を呼び出した後、クライアントの応答は終了しましたが、同時にサーバー スクリプトは実行を継続したことを意味します。
この機能を適切に使用すると、ユーザー エクスペリエンスが大幅に向上します。アイロンは熱いうちに打ってください。別の例を挙げます:
<?php echo '例子:'; file_put_contents('log.txt', date('Y-m-d H:i:s') . " 上传视频\n", FILE_APPEND); fastcgi_finish_request(); sleep(1);file_put_contents('log.txt', date('Y-m-d H:i:s') . " 转换格式\n", FILE_APPEND); sleep(1);file_put_contents('log.txt', date('Y-m-d H:i:s') . " 提取图片\n", FILE_APPEND); ?>
スリープを使用するコード内で時間のかかる操作をシミュレートするため、ブラウジングはブロックされませんでしたが、すべてのプログラムが実行されました。詳細についてはログを参照してください。
最後に、Yahoo が早期にバッファをフラッシュすることについて言及したことを思い出させてください。 「Web サイトの高速化のためのベスト プラクティス」、つまり、PHP のフラッシュ メソッドを使用して、できるだけ早くコンテンツをクライアントに送信します。これは、この記事で紹介した fastcgi_finish_request と少し似ています。
Inさらに、コードの移植性の観点から、次のコードをコードに添付できます。コード:
if (!function_exists("fastcgi_finish_request")) { function fastcgi_finish_request() { } }
は、非 fpm 環境でコードのデプロイメントの問題を引き起こしません。
上記はこの記事の全内容です, 皆様のお役に立てれば幸いです 学習が役立つことを願っています. さらに関連したコンテンツについては、PHP 中国語 Web サイトに注目してください!
関連する推奨事項:
以上がfastcgi_finish_request を使用してページの応答速度を向上させる方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。