php - 所有其他 AJAX 调用完成后的 jQuery 加载函数

标签 php javascript ajax jquery

我有 jQuery .each 循环遍历数组。对于数组中的每个项目,它都会执行 AJAX 调用。当所有 AJAX 调用完成后,我想使用 .load() 方法重新加载页面的一部分。但是,如果我使用 .ajaxStop() 方法,这会产生无限循环。

我怎样才能实现这个目标?

下面的代码...

这是单击按钮时的部分

$.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');
};  

最佳答案

您可以使用循环创建延迟对象数组。然后,您可以将该数组应用于 $.when 并调用 load() 方法。试试这个:

var requests = [];
$.each(remMems, function(index, value) {
    requests.push($.ajax({
        url: 'components/update_members.php',
        type: 'POST',
        data: {
            'memberbadge': value, 
            'function': 'removemember'
        },
        timeout: 6000
    }));
});

$.when.apply($, requests).done(function() {
    $('#listwrapper').load('members.php #ert_members');
});

请注意,更好的方法是修改 update_members.php 以获取 value 数组并仅进行一次 AJAX 调用。

关于php - 所有其他 AJAX 调用完成后的 jQuery 加载函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40747298/

相关文章:

php - 使用 php 和 JQuery 显示图像

php - Validation SSL 是否与 soap 直接相关?

javascript - 在触摸设备上捕获并停止拖动

javascript - 将 JSON 从 PHP 发送到 JS

javascript - 如何使用 jquery ajax 显示复选框列表中的项目

php - iOS 表情符号未正确存储在 MySQL 中

PHP:大文件 (>2GB) 的 fseek()

javascript - 如何在 PhoneGap Javascript iOs 移动应用程序中显示警报消息?

javascript - node.js 配置子模块

jquery - 在Here API(GEO FENCING)中动态传递路线路径和栅栏路径以跟踪目标