IE10上indexeddb的存储限制

Tho*_*mas 7 quota indexeddb internet-explorer-10

我们正在构建一个Web应用程序,它将大量文件存储为带有indexedDB的blob.如果用户最大限度地使用我们的应用程序,我们可以在indexeddb中存储多达15GB的文件.

我们遇到了IE10的问题,我强烈怀疑是配额问题.

成功保存一些文件后,新的呼叫store.put(data, key);永远不会结束.

基本上,将调用该函数,但不会调用成功事件和错误事件.

如果我查看IE 10的IndexedDB文件夹,我会看到一些看起来像临时文件(每个512 kB)的内容,无限期地创建和删除.

查看"缓存和数据库"参数窗口时,我看到我的站点的数据库已达到250 MB.

展望未来,我发现这篇博客文章http://msdnrss.thecoderblogs.com/2012/12/using-html5javascript-in-windows-store-apps-data-access-and-storage-mechanism-ii/其中不可思议地说Windows应用商店应用的存储限制为250 MB.

我没有使用任何Windows Store机制,但我认为我可能成为同样任意限制的受害者.

所以,我的问题是:

  • 有没有办法绕过这个限制?要求用户允许超过10 MB的限制,但是当达到250 MB时,我看到没有问题弹出给用户.

  • 有没有其他方法可以使用IE10存储超过250 MB的数据.

谢谢,我会抓住任何线索.

Kri*_*ave 5

我怕你不能.提供存储限制并要求用户允许更多空间是浏览器供应商的责任.所以我认为第一种选择不适用.

我知道用户可以允许网站超出限制(互联网选项>常规>浏览历史记录>设置>缓存和数据库),但我不知道这是否会超过250MB.可能这是一个你不能超过的硬编码限制.

此限制绑定到域,这意味着您无法通过创建多个数据库来解决此问题.唯一的解决方案是存储在多个域中,但在这种情况下,您无法交叉访问它们.另外,我看到250MB的限制将用于indexeddb API和File API的组合

  • 如果您正在编写HTML5应用程序而不是传统的桌面应用程序,您可能希望在IndexedDB中保存250 MB的数据,原因与任何传统桌面应用程序当前将大量数据保存到硬盘驱动器的原因相同.例如,作为一个爱好,我正在开发一个纯粹的客户端游戏,可以生成超过100 MB的IndexedDB数据库(理论上,如果游戏进行得足够长,它们可能会无限大,但我没有测试太多超过100 MB),在我非常不科学的测试中,我没有遇到性能问题. (5认同)
  • 我害怕这样的事情.有关信息,如果用户在"网站缓存或数据库超过时通知我"中设置的值高于250,则我们将能够达到该限制.但是,当用户单击"确定"以允许站点超出该限制时,将出现相同的错误(无限后台进程).不幸的是,我们不能设置超过999 MB的限制(该死的微软,为什么你一直认为你比你的用户更聪明) (2认同)