ホームページ > バックエンド開発 > PHPチュートリアル > AJAX 経由で長時間実行プロセスを開始した後、PHP 接続を早期に終了するにはどうすればよいですか?

AJAX 経由で長時間実行プロセスを開始した後、PHP 接続を早期に終了するにはどうすればよいですか?

DDD
リリース: 2024-12-29 07:06:09
オリジナル
370 人が閲覧しました

How Can I Close a PHP Connection Early After Initiating a Long-Running Process via AJAX?

接続を早期に閉じる

このクエリは、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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート