javascript - jQuery $.get 的效率如何?

标签 javascript jquery json getjson

我有一个 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/是一个很好的工具。

Live demo of correct code and JSON (click).

关于javascript - jQuery $.get 的效率如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21212872/

相关文章:

jquery - 将 Google map 添加到网站

c# - 将 API 写入文件

android - JSONObject 的大尺寸 JSON 字符串不起作用

javascript - 对 knockout js 中的 <!-- ko if : $parent. name == name --> 感到困惑

javascript - 如何将固定宽高比的 div 和固定宽度的 div 放在一起?

javascript - 番茄钟: resume button not working

javascript - Jquery 异步调用不适用于用户事件

jquery - 从 div 的中心到左侧的动画图像

JavaScript 与 NaN 的问题

javascript - 如何将jquery事件绑定(bind)到函数