什么是软限制(用户需要允许超出限制)?什么是硬限制(允许的最大值)。
警告 - 此信息已过时 - 请参阅下面的other answer。
Chrome在达到QUOTA_ERR
之前有5mb的软限制。 Here's a MDN reference到那个事实。
spec提到了一个QuotaExceededError
,但似乎没有说什么时候它应该抛出。
QuotaExceededError操作失败,因为没有足够的剩余存储空间,或者达到了存储配额,并且用户拒绝为数据库提供更多空间。
我没有听说过硬限制,也没有达到我自己开发中的限制。在你到达之前,表演应该走得很远。
经验法则是用户硬盘驱动器上可用空间的6%(编辑2015年7月:10%),如果您的源是使用websql,appcache或文件系统API,则更少。提及5mb的MDN文档已经过时并且已经更新。有关当前政策的详细信息如下:https://developer.chrome.com/apps/offline_storage
注意一些恼人的微妙之处:
使用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);
} );
IndexedDB由Google Chrome中的“TEMPORARY”存储提供内存。 Chrome上的临时存储空间的默认配额为可用磁盘空间的50%,其中20%可用于您的离线应用。请求更多临时存储空间配额无效。
基于以上所述,您的问题的答案将是:
您可以使用Browser Storage Abuser工具(在this HTML5Rocks文章中引用,该文章记录了不同浏览器的结果)来确定您正在运行的Chrome上的可用临时存储。
我没有足够的SO声誉来发布更多链接,但上面关于配额研究的HTML5Rocks文章有足够的细节来帮助您确定适当的存储类型(TEMPORARY或PERSISTENT)和适当的存储机制(如果您没有必要将其归零) IndexedDB)可能适合您的应用程序。
问题是关于Chrome和标记的IndexedDB。我认为这是关于网站,而不是Chrome扩展程序或应用程序(允许IndexedDB无限存储)。
对于网站,IndexedDB是Chrome临时存储(source)的API。所以问题是关于Chrome中临时存储的配额。
在Chrome 67中,配额行为发生了变化,除a bug report外,这种情况并未真正记录。总的来说,目前的配额行为是:
最小或软限制为5MB-浏览器将要求存储数据的权限。最大存储量是硬盘驱动器磁盘的限制,因为所有数据都存储在本地磁盘上。基本上,如果你有20GB的可用存储空间,那么你可以使用IndexedDB的所有存储空间。