IndexedDB& localStorage存储限制

时间:2013-12-24 06:42:55

标签: google-chrome indexeddb

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

  • 在这种情况下,“软”究竟是什么意思?
  • 这是否意味着localStorage:5Mb + IndexedDB:5Mb?
  • 我还没有点击缓冲区,但随后我开发应用程序时不断清理浏览器商店。达到限制时会发生什么?抛出异常并需要捕获?
  • 在存储之前压缩数据会有多少里程吗?如果值得进行数据压缩,This似乎提供了一条很好的路径。

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

我非常感谢有关这些问题的任何指导原则。

2 个答案:

答案 0 :(得分:2)

以下列出了您怀疑的答案:

我没有尝试使用locallStorage压缩,所以不知道。

答案 1 :(得分:1)

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

Local Storage Test

我已经使用压缩例程here进行测试。实际压缩很容易完成

var compr = LZString.compress(uncompr);

备注

  1. 测试需要一些时间来执行,所以请耐心等待!
  2. 要增加存储数据的大小,只需增加maxTimes
  3. 压缩效果非常好。但是,正如测试将证明的那样,它只能在存储相对较小(最多几kb的顺序)字符串时才能实际使用。对于较长的字符串,压缩本身需要太长时间,并且容易使您的应用程序无响应。我怀疑最好是质疑存储过长字符串的需要而不是压缩它们。
  4. 我使用这种技术在localStorage中存储本地显示的HTML文档,并在IndexedDB数据库中存储一系列配置数据对象。
  5. 压缩存储在IndexedDB中的数据意味着您无法无缝存储/检索它提供的JS对象。但是,这可以通过简单的包装器轻松处理。