首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >IndexedDB & localStorage存储限制

IndexedDB & localStorage存储限制
EN

Stack Overflow用户
提问于 2013-12-24 06:42:55
回答 2查看 6.9K关注 0票数 2

据我所知,Chrome对存储在localStorage和IndexedDB中的数据大小施加了5Mb的“软”限制。这里有一些我不清楚的事情

  • 在这种情况下,“软”的确切含义是什么?
  • 这是否意味着本地存储:5MB+ IndexedDB:5Mb?
  • 我还没有打开缓冲区,但当我开发我的应用程序时,我一直在清理我的浏览器商店。当达到极限时会发生什么?抛出异常并需要捕获?
  • 在存储之前压缩数据会有很大的里程吗?如果数据压缩是值得的,似乎提供了一种很好的方法。

压缩的代价是失去了能够无缝地在IndexedDB中存储/获取JSON的好处(尽管这对我的应用程序来说是透明的,几乎不需要额外的努力)。

我很想知道这些问题的指导方针。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-08 13:01:29

我写了一个小提琴,以检查当软存储限制被打破时会发生什么--并且测试压缩存储内容的效用。这是小提琴

局部存储测试

我在测试中使用了压缩例程这里。实际的压缩很容易完成。

代码语言:javascript
运行
复制
var compr = LZString.compress(uncompr);

Notes

  1. 测试需要一些时间来执行,所以要耐心!
  2. 要增加存储数据的大小,只需增加maxTimes
  3. 压缩工作-真的很好。但是,正如测试将展示的那样,它只能在存储相对较小的字符串(最多为几kb的顺序)时才能实际使用。对于较长的字符串,压缩本身花费的时间太长,可能会使应用程序失去响应。我怀疑,与其压缩字符串,不如质疑是否需要存储过长的字符串。
  4. 我使用这种技术将本地显示的HTML文档存储在localStorage中,并将一系列配置数据对象存储在IndexedDB数据库中。
  5. 压缩存储在IndexedDB中的数据意味着您将失去它提供的JS对象的无缝存储/检索。然而,这可以很容易地通过一个简单的包装处理。
票数 1
EN

Stack Overflow用户

发布于 2013-12-24 13:11:55

以下是你的疑虑的答案:

  • 谷歌Chrome的配额为5MB。这是到规范- 字节数的链接。软限制意味着它是默认的配额,您可以请求用户获得更多磁盘空间的许可。
  • localStorage的配额与IndexedDB不同-以下是IndexedDB - https://stackoverflow.com/a/20675480/867629磁盘空间配额的链接
  • 当localStorage达到5MB时,Google会在javascript控制台日志中产生一个错误: 未知错误: QUOTA_EXCEEDED_ERR: DOM异常22

我还没有尝试使用locallStorage进行压缩,所以对此一无所知。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20756164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档