javascript - ajax成功后jQuery继续循环执行

标签 javascript jquery ajax dom

我在一个循环中有一个 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/

相关文章:

javascript - 是否可以在非 jQuery Mobile 项目中使用 jQuery Mobile 中的特定内容?

javascript - 如何在angularJS中获取文件选择完成事件

javascript - 如何在纯 Javascript 中使用 XMLHttpRequest 记录 500 个服务器错误?

javascript - Node.js 中的 HTTP 请求不起作用?

javascript - Jquery 在触发器中切换跨度文本

javascript - Firefox 上 POST 时出现 Ajax 和 500 内部服务器错误

javascript - 在 Javascript/jQuery 中嵌套 AJAX 请求,这是一个很好的做法吗?

javascript - 类声明中未定义 super 方法

jquery - 如果值不在列表中,如何执行操作?

php - 在 Javascript 中顺序执行命令