配列とオブジェクトの入れ子になったJSON形式を、var json={…}; として試みに以下のコールバック関数を用いて再帰的に読み込ませると、10MB程度のデータ(例えばMTG JSON)でタイムアウト、スタックオーバーフローを起こす件。
【JavaScript】ネストされたJSONのすべての要素にアクセスする
var walkJSON = function walkJSON(data, callback){
for (var key in data) {
callback(key, data[key]);
if (typeof data[key] === "object") {
walkJSON(data[key], callback);
}
}
}
walkJSON(json, function(key, value) {
document.writeln(key + ":" + value);
document.writeln("<br>");
});
これはjavascript がブラウザのプログラムである意味、仕様なのかもしれませんが本来は、XMLHttpRequest するべきなのでしょうね、とほほ。