如何知道getJSON()请求的集合何时完成?

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

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