-2

ユーザー アクションで、完了するまで出力されない 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);
    }
}

そのため、ページを離れた後でも、ファイルはまだフォルダーから削除されています。私の目標は、そのループから抜け出し、ページを離れた場合にすべてのリンク解除を停止することです.

4

2 に答える 2

0

確認できますconnection_aborted()

于 2013-01-06T22:45:24.213 に答える
0

ユーザー アクションで、完了するまで出力されない AJAX 呼び出しを介してバックエンド システム スクリプトを実行しています。問題は、ユーザーがスクリプトを開始してからページを離れると、リソースを簡単に浪費する可能性があることです。目標は、終了時に while ループから抜け出すことです。

チェックアウトする必要があります:

彼らはあなたの問題を解決できるようです。

于 2013-01-06T22:45:57.287 に答える