0
我想通過Javascript或JQuery獲取許多JSON, 並將名爲j_name,j_value和j_sts的元素拉入sarr [i],rarr [i]和parr [i],分別。如何通過Javascript或JQuery異步獲取很多JSON
var sarr = new Object;
var rarr = new Object;
var parr = new Object;
//num_json is the number of JSONs
//jsonurl is a url of the JSON
for(var i = 1; i < num_json; i++){
$.ajaxSetup({async: false});
$.getJSON(jsonurl[i], function(data) {
sarr[i] = data.j_name;
rarr[i] = data.j_value;
parr[i] = data.j_sts;
});
$.ajaxSetup({async: true});
}
沒有
$ .ajaxSetup({異步:假});
和
$ .ajaxSetup({異步:真});
,異步處理導致sarr [i],rarr [i]和parr [i]被當前加載的JSON元素填充。 我必須停止異步加載。但是,此過程顯示頁面非常慢。
我想要做的像下面這樣分開存儲JSON的對象「數據」,但它顯然是無效的。
var sarr = new Object;
var rarr = new Object;
var parr = new Object;
var data = new Object;
for(var i = 1; i < num_json; i++){
$.getJSON(jsonurl[i], function(data[i]) {
sarr[i] = data[i].j_name;
rarr[i] = data[i].j_value;
parr[i] = data[i].j_sts;
});
}
如何以異步方式加載許多JSON並存儲每個特定元素?
使用閉包是一種方式,https://stackoverflow.com/questions/111102/how-do-javascript-closures-work?rq=1 – Adriani6