javascript - 如何知道一组 getJSON() 请求何时完成?

标签 javascript jquery ajax

如何知道所有这些请求何时完成?

$.each(data.response.docs, function(i, item) {
    $.getJSON("jsp/informations.jsp?id=" + item.id, {}, function(data) {..});
});

最佳答案

您可以在每个请求完成时维护一个计数器,但这有点丑陋和不雅。相反,您可以使用 map() 将从 $.getJSON 返回的延迟对象放入一个数组中。然后,您可以将数组应用于 $.when。像这样:

var requests = $.map(data.response.docs, function(i, item) {
    return $.getJSON('jsp/informations.jsp', { id: item.id }, function(data) {
        // ...
    });
}).get();

$.when.apply(requests).done(function() {
    // all requests complete...
});

关于javascript - 如何知道一组 getJSON() 请求何时完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35509586/

相关文章:

jquery - 如何在 Chrome 24 和 jQuery 1.8.2 中解析命名空间 XML?

jquery - 链接在我的 slider 中不起作用

javascript - 隐藏模态框的问题 - Bootstrap 3

javascript - ajax 成功函数内的动态 PHP 内容

javascript - Uncaught ReferenceError : url is not defined

javascript - Google Chrome 扩展中的 SOCKS5 代理身份验证

javascript - 将两个文档元素数组添加到一个数组中的最佳方法是什么?

javascript - 如何禁止向 <td> 添加元素

javascript - 用户名条目在 mongodb nodejs 中全部显示为 'null'

javascript - 通过按钮使用 javascript AJAX 功能更新数据库