我在循环中有一个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);
}
});
}
};
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。