ユーザー アクションで、完了するまで出力されない AJAX 呼び出しを介してバックエンド システム スクリプトを実行しています。問題は、ユーザーがスクリプトを開始してからページを離れると、リソースを簡単に浪費する可能性があることです。目標は、終了時に while ループから抜け出すことです。
まず、起動時にファイルをキャッシュに追加し、繰り返しごとにチェックするようにしました。別の AJAX 呼び出しでファイルの値を変更すると終了するため、これは正しく機能します。
だから私の質問は、あなたがページを離れたときに、どうすればそのループから抜け出すことができますか?
私の唯一の推測は、JS の onunload AJAX 呼び出しを実行してキャッシュ ファイルを変更することですが、それは明らかな理由から貧弱で信頼性の低いアプローチです。ありがとう
//編集//
だから私はconnection_abortedにignore_user_abortを試してみました。これは、コードの非常に骨抜きにされたバージョンです。
ignore_user_abort(true);
set_time_limit(0);
$handle=opendir($dir);
if($handle)
{
while(false!==($file=readdir($handle))&&!connection_aborted())
{
sleep(1);
unlink($dir."/".$file);
}
}
そのため、ページを離れた後でも、ファイルはまだフォルダーから削除されています。私の目標は、そのループから抜け出し、ページを離れた場合にすべてのリンク解除を停止することです.