簡體   English   中英

jQuery 多個 getJSON 請求

[英]jQuery Multiple getJSON requests

My script needs to fetch several json files on https://graph.facebook.com/xxxx , and retrieve a certain field from each json, then calculate summation.

我的問題是完成所有 getJSON 后如何打印結果? 使用下面的代碼,它將打印 0。請隨意提出任何更好的方法。

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

使用 jQuery 1.5 延遲對象:

累積由$.getJSON()返回的 JQXHR 對象數組

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

只有$.when他們都是.done()

$.when.apply($, jxhr).done(function() {
    alert(result);
});

注意:這將按照 AJAX 調用完成的順序累積result ,而不是按照它們的生成順序。

當您立即打印結果時它不起作用,請記住連接結果的代碼是回調,因此會在您發出警報后觸發。

在每次回調時,您都必須檢查是否全部完成。 用您的處理替換 alert() 調用。 :)

    var result = 0;
    var doneCount = 0;

    $.each(urls, function (i, url) {
        $.getJSON(url, function (json) {
            doneCount++;
            result += json.field1;
            if (doneCount == urls.length) {
                alert(result);
            }
        })
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM