jQuery多个getJSON请求

Sta*_*tan 6 javascript jquery json

我的脚本需要在https://graph.facebook.com/xxxx上获取几个json文件,并从每个json中检索某个字段,然后计算求和.

我的问题是如何在所有getJSON完成后打印出结果?使用以下代码,它将打印0.随意建议任何更好的方法.

var result = 0;
$.each(urls, function (i, url) {
    $.getJSON(url, function (json) {
        result += json.field1;
    })
});
alert(result);
Run Code Online (Sandbox Code Playgroud)

Aln*_*tak 23

使用jQuery 1.5延迟对象:

累积返回的JQXHR对象数组 $.getJSON()

var jxhr = urls.map(function(url) {
    return $.getJSON(url, function(json) {
        result += json.field1;
    })
});
Run Code Online (Sandbox Code Playgroud)

只有$.when他们都是.done():

$.when.apply($, jxhr).done(function() {
    alert(result);
});
Run Code Online (Sandbox Code Playgroud)

注意:这将result按照AJAX调用完成的顺序累积,而不是按照它们的顺序进行累积.