Google chrome IndexedDB&;本地存储限制

Google chrome IndexedDB&;本地存储限制,google-chrome,indexeddb,Google Chrome,Indexeddb,据我所知,Chrome对localStorage和IndexedDB中存储的数据大小施加了5Mb的“软”限制。这里有很多事情我不清楚 在这种情况下,“软”的确切含义是什么 这是否意味着本地存储:5Mb+索引DDB:5Mb 我还没有进入缓冲区,但在开发我的应用程序时,我一直在清理我的浏览器商店。当达到极限时会发生什么?是否引发异常并需要捕获 在存储之前压缩数据会有很多好处吗?如果数据压缩值得做的话,它似乎提供了一个很好的途径 压缩的代价是失去了在IndexedDB中无缝存储/获取JSON的好处

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

  • 在这种情况下,“软”的确切含义是什么
  • 这是否意味着本地存储:5Mb+索引DDB:5Mb
  • 我还没有进入缓冲区,但在开发我的应用程序时,我一直在清理我的浏览器商店。当达到极限时会发生什么?是否引发异常并需要捕获
  • 在存储之前压缩数据会有很多好处吗?如果数据压缩值得做的话,它似乎提供了一个很好的途径
压缩的代价是失去了在IndexedDB中无缝存储/获取JSON的好处(尽管这对我的应用程序来说是透明的,不需要额外的努力)


我非常感谢您提供有关这些问题的指导。

以下是您疑问的答案:

  • 谷歌浏览器的配额是5MB。这里是到规范的链接-。软限制意味着它是默认配额,您可以要求用户获得更多磁盘空间的权限
  • localStorage的配额与IndexedDB不同-以下是IndexedDB的磁盘空间配额链接-
  • 当localStorage达到5MB时,Google Chrome会在javascript控制台日志中产生错误:

    Uncaught Error: QUOTA_EXCEEDED_ERR: DOM Exception 22
    

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

我写了一篇文章来研究当软存储限制被打破时会发生什么,并测试压缩存储内容的实用性。这是小提琴

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

var compr = LZString.compress(uncompr);
注释

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

  • 谢谢我假设可以在正常的JavaScript try..catch构造中捕获此错误?