メールを送信するphpファイルを呼び出すためにjQueryを使用して再帰関数を作成しようとしています。電子メール サーバーは一度に 10 通の電子メールのバッチを送信します。JS が data.Finished == true になるまで GET を発行し続けるようにします。
私のコードは次のとおりです。
function emailDespatchNotification() {
$.get('email.php', function(event) {
if (event.action.status == 'OK') {
if (event.data.Finished != true) {
emailDespatchNotification();
}
}
});
}
JSON の結果は次のとおりです。
{
"log": {"SQL":{"0":"SELECT ...","1":"INSERT INTO ..."},"0":"Cache cleared","Page":"email.php","Script_Time":3.4495},
"data": {"Finished":false},
"action": {"status":"OK"},
"readable": {}
}
が初めて呼び出されたときemailDespatchNotification()
、コードは 1 つの GET をサーバーに送信するように動作しますが、結果 (data.Finished = false を含む) が返されると、JS はサーバーに GET リクエストを送信し続けます。ブラウザはエラーを報告します。
emailDespatchNotification()
GET が値を返した後にのみ呼び出す必要があるため、 が継続的に呼び出される理由がわかりません。GET 全体を名前付き関数にネストして、代わりにemailDespatchNotification()
それを呼び出してみましたが、効果はありませんでした。リストを使用する前にこの種の問題を回避しましたが、サーバーを呼び出す必要がある回数がわからないため、リストは適切ではありません。jQuery 1.8.3 を使用し、Firebug でデバッグしています。