【问题标题】:What is the most feasible way to store large array data while being able to access it from a web browser? [closed]存储大型数组数据同时能够从 Web 浏览器访问它的最可行方法是什么? [关闭]
【发布时间】:2018-10-25 17:37:15
【问题描述】:

我遇到了很多方法来做到这一点,但是,要么需要第三方资源,要么该解决方案无法实施。

我需要存储的是海量数据(一个包含 700 个嵌套数组和每个数组 10 个条目的数组)。下面列出了我想到的一些方法及其缺点:

  1. 使用 JSON:
    这只是浏览器上的大量工作。当我遍历数组时,浏览器将冻结。
  2. 使用 SQL 数据库 我将无法在任何计算机上运行我的网页。我必须在每台我希望运行我的网页的计算机上安装 PHP 和 SQL。
  3. 使用 C++ 程序处理繁重的工作 这仅适用于 chrome,我可以在其中使用文件系统 API。

注意:网页不会上传到互联网。

在这种情况下最好做什么?

【问题讨论】:

  • 700*10 没那么多,如果你在迭代它时遇到“冻结”,你可能应该显示代码
  • 我没有遇到冻结;我只是假设这会发生在一台速度较慢的 PC 上(比如我的),因为我曾经尝试使用 javascript 创建表行,但遇到了冻结。
  • 我很确定如果你能找到一台有 20 年历史的电脑,那么处理 7000 个元素的数组是没有问题的(假设你没有在其中存储 100Mb 对象;)
  • 包含 700 个元素的数组对于任何浏览器(包括 IE)来说都是小菜一碟。我可以向您展示具有 100k 行渲染和平滑滚动的表格。最有可能的是,您的问题在于从该数据生成 HTML 元素,这种方式很可能会给浏览器带来不必要的负担。如果不提供minimal reproducible example,您将无法获得太多帮助。

标签: javascript html c++ json database


【解决方案1】:

IndexDB 专为您的目的而设计:

IndexedDB 是用于客户端存储重要数据的低级 API 大量结构化数据,包括文件/blob。该 API 使用 索引以实现对这些数据的高性能搜索。

https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API

以下是一些很好的使用示例:

https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API#Examples

【讨论】:

  • 我对 IndexDB 不熟悉。如果我实现它,会不会遇到和数据库一样的问题,即我可以在任何计算机上运行网页而不安装第三方组件吗?
  • 是的 - indexDB 是浏览器的一部分,内置。但请注意:caniuse.com/#search=indexed
猜你喜欢
  • 1970-01-01
  • 2018-12-17
  • 1970-01-01
  • 1970-01-01
  • 2012-07-15
  • 2013-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多