2016-11-17 39 views
0

我試圖將幾個大的JSON文件(即在"url1""url2"和〜1MB大小)的內容推送到一個數組(即results)。我曾嘗試過使用jQuery $.get()$.ajax()的幾個變體,但是,即使xhttp成功,它也會返回所請求頁面的一個片段或根本沒有任何內容。

var urls = ["url1", "url2"]; 

function getData(urls) { 
    var results = []; 
    for (var i = 0; i < urls.length; i++) { 
     $.get(urls[i], function(data) { 
      results.push(data); 
     }); 
    } 
    var listen = setInterval(function() { // write results to console when done 
     if (urls.length == results.length) { 
      clearInterval(listen); 
      console.log(results); 
     } 
    }, 1000); 
} 

是否有一個「正確」的方式,我應該與大文件的工作,或者是有些事情根本錯了我的做法?

+0

你並不需要你'listen'功能,只需()'直接添加一個'的console.log到'GET'成功的回調函數。 –

+0

@ScottMarcus,但我只想在檢索完所有文件後繼續使用我的管道(在這種情況下也稱爲console.log())。 – Wagtail

+1

「get」的回調函數只有在返回結果時纔會運行。它已經是異步的了。您可以直接在回調中檢查結果數組。 –

回答

-2

https://api.jquery.com/jquery.get/

var jqxhr = $.get("example.php", function() { 
alert("success"); 
}) 
.done(function() { 
alert("second success"); 
}) 
.fail(function() { 
alert("error"); 
}) 
.always(function() { 
    alert("finished"); 
}); 
+0

這是如何回答這個問題的? – empiric

+0

@empiric它沒有。我閱讀文檔。 – Wagtail