このクエリは、PHP スクリプトを完了する前に接続を閉じるという課題に対処します。目標は、AJAX を通じて長時間のプロセスを開始しながら、PHP スクリプトの終了を待たずにプロセスの開始を示す応答を返すことです。
PHP マニュアルによると、PHP スクリプトを終了せずに TCP 接続を終了するには、以上のことが必要です。 「close」ヘッダーを送信するだけです。ユーザーノート #71172 (2006 年 11 月) は、包括的な解決策を提供します。
<?php ob_end_clean(); header("Connection: close"); ignore_user_abort(true); ob_start(); echo('Text the user will see'); $size = ob_get_length(); header("Content-Length: $size"); ob_end_flush(); flush(); // Do processing here sleep(30); echo('Text user will never see'); ?>
この解決策が機能するには、出力バッファリングを無効にし、バッファをパージして、ヘッダー情報を送信することが重要です。 「close」ヘッダーの送信は必要ですが、ただちに接続を閉じるだけでは十分ではありません。
その後のユーザーノート #89177 (2009 年 2 月) および #93441 (2009 年 9 月) では、接続の処理と、 PHP における早期接続終了のニュアンスを明確にするのに役立ちます。
以上がAJAX 経由で長時間実行プロセスを開始した後、PHP 接続を早期に終了するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。