我们正在构建一个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的数据。
谢谢,我会抓住任何线索。
答案 0 :(得分:5)
我怕你不能。提供存储限制并要求用户允许更多空间是浏览器供应商的责任。所以我认为第一种选择不适用。
我知道用户可以允许网站超出限额(互联网选项>常规>浏览历史记录>设置>缓存和数据库),但我不知道这是否会超过250MB。可能这是一个你不能超过的硬编码限制。
此限制绑定到域,这意味着您无法通过创建多个数据库来解决此问题。唯一的解决方案是存储在多个域中,但在这种情况下,您无法交叉访问它们。另外,我看到250MB的限制将用于indexeddb API和File API的组合