jQuery .each
ループが配列を経由しています。配列内の各項目に対して、AJAX呼び出しを行います。すべてのAJAX呼び出しが完了したら、メソッドを使用してページの一部をリロードします。しかし、.ajaxStop()
メソッドを使用すると、これによって無限ループが作成されます。他のすべてのAJAX呼び出しが完了した後のjQueryロード関数
どうすればこの問題を解決できますか?以下
コードは...
これは、ボタンが
$.each(remMems, function(index, value) {
$.ajax({
url: 'components/update_members.php',
type: 'POST',
data: {'memberbadge':value, 'function':'removemember'},
timeout: 6000
}); //end ajax call
//if its the last item, then refresh the area
if (index == lastitem) {
refreshMembers();
}
}); //end the for each loop
をクリックされたときのための一部であり、これは、各ループが完了したとき、の部分をリフレッシュするために呼び出されるメソッド/関数でありますページ
function refreshMembers() {
$('#listwrapper').load('members.php' + ' #ert_members');
};
ajaxコールが確実に完了するための方法としてタイムアウトを使用していますか? – user2085143
私はやっていますが、どれくらいの時間がかかっているかわかりません... 500ミリ秒かかりますか、10秒(あるいはそれ以上)かかります。 だから私は、すべてのajax呼び出しが完了しているか、少なくとも特定のセットであるかどうかを調べてテストする方法があることを望みます。何かのように if(ajaxComplete == true){ // do something } 私は完全に何かが欠けているかもしれませんが –