【问题标题】:Max recommended size of external JSON object in JavaScriptJavaScript 中外部 JSON 对象的最大推荐大小
【发布时间】:2012-04-12 08:21:22
【问题描述】:

我有大量数据需要排序和查询,而且我不能依赖互联网连接。理想情况下,我想将我的整个数据集存储为 JSON 对象(目前大约 17MB,但可能会变得更大)并使用 jLinq 或 SQLike 之类的东西来查询它,而不是必须输出大量较小的文件。

我有兴趣找到使用 JavaScript(特别是 jQuery)进行外部 getJSON 调用的最大推荐文件大小。 1MB、20MB、100MB?关于该主题的信息很少。关于在客户端查询大型数据集的信息非常稀缺。

任何有关该主题的信息将不胜感激。

【问题讨论】:

  • 这一切都发生在本地?您是在浏览器环境中,还是在使用 node.js 或类似的东西?我的猜测是,这将高度依赖于客户端机器中可用的内存......这种方法的最大问题可能是解析,因为您可能需要将整个 JSON 字符串加载到内存中才能解析它。
  • 所有客户端,本地,在浏览器环境中。不能依赖他们安装并运行 jode.js。
  • 请注意,您将遇到的第一个问题是加载文件 - 通常,浏览器安全设置不允许您使用 AJAX 加载本地文件,即使从本地 HTML 页面也是如此。您可以通过使用 JSONP 或在文档 <head> 中将其加载为脚本来解决此问题。

标签: javascript json getjson


【解决方案1】:

您最大的问题可能是加载时间,因为它必须将其从 JSON 字符串转换为实际的 JavaScript 对象。另一个大问题是整个数据集都在页面的内存中。我不熟悉任何使用 100MB 以上数据的页面。

我做了一个jsfiddle to test loading performance of large JSON strings。看起来仅解析一个 ~20MB 的 JSON 字符串(在 Core i7 机器上)需要 ~500 毫秒,而在 Chrome 中,它使用的内存比 JSON 字符串基本上为空时多 80MB。所以 100MB 可能需要几秒钟来加载和使用 400MB 以上的内存。

这不会解决任何一个问题,但您是否考虑过使用SQL.js?它是 SQLite 的 JavaScript 实现。它应该使查询该数据变得更加容易。

【讨论】:

    猜你喜欢
    • 2010-12-05
    • 2014-07-02
    • 1970-01-01
    • 2016-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-27
    相关资源
    最近更新 更多