0
合計3つのJSONフィードをダウンロードするために複数のXHRリクエストを作成しようとしています。残念ながら、予期せぬ入力エラーの終了でヒットする前に、ただ1つのtransferComplete()を実行するだけです。私は私の構文をチェックし、私はそれが良いと言うことができる限りです。なぜこうなった?XHR For Loop - 予期しない入力エラーの終了
function getJSON(){
feedObject["url"]["0"] = "http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_day.geojson",
feedObject["url"]["1"] = "http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_week.geojson",
feedObject["url"]["2"] = "http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_month.geojson";
var xhr = [];
for (a = 0; a < 3; a++) {
(function(a){
xhr[a] = new XMLHttpRequest();
xhr[a].addEventListener("load", transferComplete(a));
xhr[a].open("GET", feedObject["url"][a], true);
xhr[a].send(null);
feedObject["quakesMag"][a] = [],
feedObject["quakesPlace"][a] = [],
feedObject["quakesTime"][a] = [];
})(a);
}
function transferComplete(a) {
// receiving data
loadText.innerText = "Getting USGS Data "+(a+1)+ "/3";
var response = JSON.parse(xhr[a].responseText);
feedObject["quakesTitle"][a] = response["metadata"]["title"];
for (var i = 0, len = response["features"].length; i < len; i++) {
if (response["features"][i]["properties"]["mag"] != null) {
quakes = [],
quakeCount = 0;
quakes.push(response["features"][i]);
}
}
for (var x = quakes.length - 1; x >= 0; x--) {
var quake = quakes[x],
quakeCoord = quake["geometry"]["coordinates"],
quakeMag = quake["properties"]["mag"],
quakePlace = quake["properties"]["place"],
quakeTime = quake["properties"]["time"];
quakeCount++;
feedObject["quakesMag"][a].push(quakeMag);
feedObject["quakesPlace"][a].push(quakePlace);
feedObject["quakesTime"][a].push(quakeTime);
}
feedObject["quakesCount"][a] = quakeCount;
if (a == 2){ renderData(); }
}
}