软限制是什么(用户需要允许超出限制)? 什么是硬限制(允许的最大值)。
答案 0 :(得分:37)
经验法则是用户硬盘驱动器上可用空间的6%(编辑2015年7月:10%),如果您的源是使用websql,appcache或文件系统API,则更少。提及5mb的MDN文档已经过时并且已经更新。有关当前政策的详细信息如下:https://developer.chrome.com/apps/offline_storage
注意一些恼人的微妙之处:
答案 1 :(得分:13)
使用chrome> dev工具(F12)> console
中的以下代码检查配额// Request storage usage and capacity left
window.webkitStorageInfo.queryUsageAndQuota(webkitStorageInfo.TEMPORARY,
//the type can be either TEMPORARY or PERSISTENT
function(used, remaining) {
console.log("Used quota: " + used + ", remaining quota: " + remaining);
}, function(e) {
console.log('Error', e);
} );
答案 2 :(得分:5)
IndexedDB由Google Chrome中的“TEMPORARY”存储空间提供内存。 Chrome上的临时存储空间的默认配额为可用磁盘空间的50%,其中20%可用于您的离线应用。请求更多临时存储配额无效。
根据以上所述,您的问题的答案将是:
您可以使用Browser Storage Abuser HTML5Rocks文章(引用不同浏览器的结果)中的this工具来确定您正在运行的Chrome上的可用临时存储空间。
我没有足够的SO声誉来发布更多链接,但上面关于配额研究的HTML5Rocks文章有足够的细节来帮助您确定适当的存储类型(TEMPORARY或PERSISTENT)和适当的存储机制(如果您不一定归零于IndexedDB),因为它可能适合您的应用程序。
答案 3 :(得分:4)
警告 - 此信息已过时 - 请参阅下面的other answer。
Chrome在达到QUOTA_ERR
之前有5mb的软限制。 Here's a MDN reference这个事实。
spec提及QuotaExceededError
,但似乎没有说什么时候应该抛出它。
QuotaExceededError 操作失败,因为没有足够的操作 剩余存储空间,或达到了存储配额和用户 拒绝为数据库提供更多空间。
我没有听说过硬限制,也没有达到我自己开发的限制。在你到达之前,表演应该走得很远。
答案 4 :(得分:0)
问题与Chrome和标记的IndexedDB有关。而且我认为这是关于网站的,而不是与Chrome扩展程序或应用程序有关的(Chrome扩展程序或应用程序(允许IndexedDB无限存储)。
对于网站,IndexedDB是用于Chrome临时存储(source)的API。所以问题是关于 Chrome中临时存储的配额。
在Chrome 67中,配额行为已更改,只有a bug report中才真正记录了配额行为。综上所述,当前的配额行为是:
在Chrome 普通模式
中对于脱机API (应用缓存,文件系统,IndexedDB,WebSQL):
如果命中“应该保持可用”值,则一个来源(“站点”)的配额将为零。 “应保持可用”值与在大容量存储上保持空闲的空间有关。从Chrome 67开始,它是“ 2 GiB”和“大容量存储总容量的10%”(source)中的较低值。一旦达到此限制,对临时存储的其他写入将失败,但是临时存储中的现有数据将不会被删除。
如果尚未达到“应保持可用”值,则配额将为共享池(source)的20%。 (可能)表示“ Chrome已经保存了临时存储中所有数据的20%,加上Chrome可以将所有数据保存到本地存储而不会达到'应该保持可用'的值。”
对于 Web存储API (LocalStorage,SessionStorage等):已修复5 MiB(source);我不知道这是否受到上面记录的“应保持可用”限制的影响。
在Chrome 隐身模式
中答案 5 :(得分:-1)
最小或软限制为5MB - 浏览器将要求存储数据的权限。 最大存储量是硬盘驱动器磁盘的限制,因为所有数据都存储在本地磁盘上。 基本上,如果您有20GB的可用存储空间,那么您可以使用IndexedDB的所有存储空间。