如何知道所有这些请求何时完成?
$.each(data.response.docs, function(i, item) {
$.getJSON("jsp/informations.jsp?id=" + item.id, {}, function(data) {..});
});
答案 0 :(得分:4)
你可以在每个请求完成时维护一个计数器,但这有点丑陋和不优雅。相反,您可以使用$.getJSON
将从map()
返回的延迟对象放入数组中。然后,您可以将数组应用于$.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...
});