在浏览器中存储大量数据

Tho*_*ith 5 javascript local-storage

我正在开发一个用于搜索、过滤和探索固定数据集的 Web 应用程序。该数据集可容纳大约 10 MB 的 JSON。一年会改变几次,并且可以增量更新。

我想将这些数据存储在浏览器中以避免延迟。这是一个硬性要求——当存在许多优秀的替代方案时,响应能力的巨大提升是创建此应用程序的全部原因。我承认它对某些用户来说效果不佳。

在浏览器中持久存储这些数据的最佳方法是什么?我可以将它打包到 localStorage 中,但我必须JSON.parse在每个页面加载时解压缩它。我听说过有关 IndexedDB 的好消息,但我不确定它是否适合存储单个巨型 blob。

Uze*_*zer 1

如果您的数据小于 10MB,那么您可以将其存储在 localStorage 中,但是存储的大小可以由用户自定义,因此这似乎是有限制的。此外,您还会经常进行解析/字符串化,并且只能在内存中进行过滤。

使用indexedDB可能是您最好的选择,因为它可以存储更多显然单个项目的大小没有限制,因此如果您愿意,您可以制作一个巨大的值 blob。

您能进一步描述一下数据的结构吗?如果它是一个列表,那么您的数据是可分区的。您可以利用索引来非常有效地搜索精确的列表项值。

  • 该应用程序是一个 Magic: The Gathering 卡片目录,数据是卡片、套装、印刷品和其他相关信息的列表。无论如何,我想在内存中进行过滤和其他处理;它更容易,可能更快,而且数据量也不是那么多(少于 20,000 张卡)。查询通常比简单的索引匹配复杂得多。 (2认同)