我有一个 50MB 和 84000 行的 .json
文件。我正在使用下面的代码将其加载到变量 2002data
中。起初我按预期等待了一段时间,但是当我在 $.get
之前添加警报时,什么也没有发生。我是做错了什么还是这正常?
alert('starting 2002_results.json'); // This alert isn't showing up...
$.get('2002_results.json', function(2002data));
alert('2002 done');
以防万一,这里是 .json
文件的前 2 行和后 2 行。
{"2002Results": [
{"st_is_str":"01006000102","parm_desc":"ALKALINITY, TOTAL"},
{"st_id":{"station_id":"18349002002","name":"Madawaska River","location":"Madawaska Blvd, Arnprior","first_year":1966,"last_year":2010,"total_years":45,"missed_years":0,"long_coord":-76.34968485,"lat_coord":-76.34968485},"parm_desc":"ZINC, UNFILTERED TOTAL"},
]}
..这会持续一段时间。
如果有更高效的东西我可以使用它是什么? (名字就好,其他的我自己想)
最佳答案
加载东西:
您不应一次加载 50mb 的数据。这是一个巨大的服务器负载,而且太耗时了。相反,评估用户当时需要看到的内容,然后加载足够的内容来处理。滚动加载、点击加载或分页加载是常见的方法。
语法错误!
你有一个语法错误。将您的代码更改为:
$.get('2002_results.json').then(function(resp) {
alert('2002 done');
});
或:
$.get('2002_results.json', function(resp) {
alert('2002 done');
});
您应该检查您的控制台(可能是 f12 键)。 function(2002data));
不是有效的 javascript。如果出现语法错误,脚本中的任何内容都不会运行。
此外,您的 JSON 无效。这是更正后的 JSON:
[
{
"2002Results": [
{
"st_is_str":"01006000102",
"parm_desc":"ALKALINITY, TOTAL"
},
{
"st_id":{
"station_id":"18349002002",
"name":"Madawaska River",
"location":"Madawaska Blvd, Arnprior",
"first_year":1966,
"last_year":2010,
"total_years":45,
"missed_years":0,
"long_coord":-76.34968485,
"lat_coord":-76.34968485
},
"parm_desc":"ZINC, UNFILTERED TOTAL"
}
]
}
]
有一些错位的逗号。 http://jsonlint.com/是一个很好的工具。
关于javascript - jQuery $.get 的效率如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21212872/