2016-11-17 68 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