【问题标题】:How to make JSON loads faster with large data (on HTTP or WebPage)如何使用大数据(在 HTTP 或网页上)使 JSON 加载更快
【发布时间】:2018-01-10 11:11:05
【问题描述】:

。请求页面(在 HTTP 或 WebPage 上),它非常慢甚至崩溃,除非我用更少的数据加载我的 JSON。我真的需要解决这个问题,因为迟早我会经常使用大量数据。这是我的 JSON 数据。 --->>>

注意事项: 1. JSON 只加载 String 和 Integer。 2. 我以前在 JSONView 中查看我的 JSON,更像是使用插件的树视图 来自谷歌浏览器。

我正在使用 angular 和 nodejs。 tq

【问题讨论】:

  • 你能举个例子吗?
  • 假设带宽确实是这里的限制因素,除了对您从服务器请求的数据更具选择性之外,真的没有任何解决方案。剔除您实际上不需要的任何数据,在服务器上进行更多预处理,尽可能以增量方式加载数据,等等。
  • @StefansArya 也许在 HTTP 或网页屏幕上。
  • @DanielBeck 不幸的是,我无法删除任何数据。那是可能需要使用的数据..
  • 去掉“I”,你可以使用 Object.keys() 来获取键名

标签: angularjs json node.js


【解决方案1】:

我想到的所有事情的快速简历:

我曾经遇到过类似的问题。我的解决方案可能会改变 UI。

  1. 分页

我怀疑您一次可以显示这么多数据,因此策略应该是将您的数据分成少量,然后仅在客户要求时加载更多数据。

这样,整个数据不再像现在一样存储在 RAM 中。这就是论坛的运作方式(一次只有 20 个主题)。

试想一下,如果 StackOverflow 让您在主页中加载整个历史问题,那么您的导航器需要多少 GB?

您可以根据需要以经典方式(带有页码的按钮,如 google)或无限滚动方式使用分页。

为此,您需要调整您的 api 并跟踪您在前面的每一刻已经加载的页面的索引。 AngularJS中有很多例子。

  1. 只显示数据的开头

当您查看 Facebook cmets 时,您可能会有一个“显示更多”按钮。在他们的情况下,也许是为了不破坏 UI,但它也可以用来不使数据过载。

您可以只显示数据的主要行(标题或某些内容)并添加一个按钮,以便用户可以根据需要加载更多详细信息。

在您的数据模型中,成本似乎处于“C”的第二级。只需加载数据直到第二级,然后仅在用户要求时才下载剩余部分(for this object)。

再一次,无需超载,您的客户的 RAM 将非常感谢,您客户的移动 3G 也将如此。

  1. 优化您的数据结构

如果这还不够:

  • 正如StefanArya 在评论中所说,确实删除了“I”属性,该属性与 JSON 键是多余的。

删除“I”,因为您可以使用 Object.keys() 获取键名。

  • 您的浮点数也可能不需要那么精确。

如果我看到任何其他想法,我会稍后编辑这篇文章。

【讨论】:

    猜你喜欢
    • 2013-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-16
    • 1970-01-01
    • 2015-05-05
    • 2014-07-28
    相关资源
    最近更新 更多