【发布时间】:2019-10-29 19:54:42
【问题描述】:
我有,我认为是大型 JSON 文件,其中我的 javascript 代码没有提取所有数据。我知道这一点是因为在 FireFox 的开发人员工具的 Network 选项卡中指出,它在 57,301 处接收到数据结束标记,但文件中有 528,342 行 JSON。
我试图只获取,但我不断收到关于“等待”需要使用异步的错误,但我不熟悉异步函数的工作原理。在我的 xmlhttp 请求中,我将异步标志设置为 false。这是我可以让它与我正在运行的代码一起工作的唯一方法。
我正在拉入具有纬度、经度和高度的 json 对象。我的 JSON 格式如下:
{"points":[
{"lat": 0, "lon": 0},
.
.
.
{"lat": 0, "lon": 0}]}
我的请求是这样编码的
function get_json_data(){
var data = [];
var response = new XMLHttpRequest();
response.onreadystatechange = function(){
data_points = JSON.parse(this.responseText);
*** CONVERTING LAT/LON TO ARRAY AND PUTTING INTO DATA ***
});
response.open("GET", "http://url/path/to/json", false);
response.send();
return data;
}
它适用于不是那么大的 JSON 文件,可能有 10,000 行。我怎样才能让它与一个更大的 JSON 文件一起工作,超过 500,000 行?
【问题讨论】:
-
可能值得在您的代码中添加一个 readyState 检查器,因为
onreadystatechange处理程序实际上被调用了 4 次......请参阅 this question -
另外,如果您可以看到问题发生在浏览器级别,那么问题可能在于您托管 JSON 文件的方式,而不是您的客户端。
-
Read the warning 关于不将 readyStateChanged 用于同步(你在做什么)请求
标签: javascript json coordinate-systems