【问题标题】:IndexedDB & localStorage Storage LimitsIndexedDB 和 localStorage 存储限制
【发布时间】:2014-01-08 21:01:29
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: google-chrome indexeddb


    【解决方案1】:

    这里列出了您的疑问的答案:

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

    【讨论】:

    • 谢谢。我假设可以在普通的 JavaScript try..catch 构造中捕获此错误?
    【解决方案2】:

    我写了一个小提琴来检查违反软存储限制时会发生什么 - 并测试压缩存储内容的实用性。这是小提琴

    Local Storage Test

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

    var compr = LZString.compress(uncompr);
    

    备注

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

    【讨论】:

      猜你喜欢
      • 2013-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多