我在一个循环中有一个 jQuery ajax 调用。但是,我不希望同时进行这些 ajax 调用,我需要先完成第一个 ajax 调用,然后再进行下一个调用。
for (var i = 0; i < options.length; i++) {
jQuery.ajax({
url: "ajax_file.php",
data: //some data based on DOM tree
success: function(data){
//some DOM manipulation
}
});
}
我希望循环仅在执行 SUCCESS 中的 DOM 操作后继续执行(因为 ajax 调用取决于 DOM 树)。 理论上我知道我可以将 ajax 调用设置为 async:false,但不推荐这样做,因为它会卡住浏览器。
最佳答案
因为 async: false
总是一个坏主意,我推荐这样的东西:
var recur_loop = function(i) {
var num = i || 0; // uses i if it's set, otherwise uses 0
if(num < options.length) {
jQuery.ajax({
url: "ajax_file.php",
data: //some data based on DOM tree
success: function(data){
recur_loop(num+1);
}
});
}
};
关于javascript - ajax成功后jQuery继续循环执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7330728/