javascript - 在浏览器中存储大量数据
问题描述
我正在开发一个用于搜索、过滤和探索固定数据集的 Web 应用程序。该数据集适合大约 10 MB 的 JSON。它每年会更改几次,并且可以增量更新。
我想将此数据存储在浏览器中以避免延迟。这是一个硬性要求——当存在许多优秀的替代方案时,响应能力的巨大提升是创建此应用程序的全部原因。我接受它对某些用户来说效果不佳。
在浏览器中持久存储这些数据的最佳方式是什么?我可以将它打包到 localStorage 中,但我必须JSON.parse
在每次页面加载时解压缩它。我听说过关于 IndexedDB 的好消息,但我不确定它是否适合存储单个巨型 blob。
解决方案
如果您的数据小于 10MB,那么您可以将其存储在 localStorage中,但是存储的大小可以由用户自定义,因此这似乎是有限的。此外,您还会经常进行解析/字符串化,并且只能在内存中进行过滤。
使用 indexedDB 可能是您最好的选择,因为它可以存储更多. 显然对单个项目的大小没有限制,所以如果你愿意,你可以做一个巨大的价值 blob。
你能进一步描述数据的结构吗?如果它是一个列表,那么您的数据是可分区的。您可以利用索引来非常有效地搜索确切的列表项值。
推荐阅读
- angular - Angular - 如何将演练添加到 Angular 项目
- java - Talend Custom Component Kit - 在表格小部件中列出传入字段
- c - 在函数参数中使用前缀和后缀运算符时的不同和奇怪的结果
- overflow - 溢出-y不在移动设备上滚动
- javascript - 使用 querySelector 选择表单
- recursion - Cobol 递归程序第 n 个斐波那契数
- javascript - 如何使 Google oAuth2Client 对象在 Node.js 应用程序范围内可重用?
- java - java中用户输入的重复项的升序
- java - 在用户做出选择之前调用 onRequestPermissionsResult?
- ios - Swift Combine:一个接一个地运行发布者列表,并发布第一个非零元素