dgr*_*gan 37
经验法则是用户硬盘驱动器上可用空间的6%(编辑2015年7月:10%),如果您的源是使用websql,appcache或文件系统API,则更少.提及5mb的MDN文档已经过时并且已经更新.有关当前政策的详细信息如下:https://developer.chrome.com/apps/offline_storage
注意一些恼人的微妙之处:
Ank*_*h55 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);
} );
Run Code Online (Sandbox Code Playgroud)
警告 - 此信息已过时- 请参阅下面的其他答案。
Chrome 在达到QUOTA_ERR
. 这是对该事实的 MDN 参考。
该规范提到了QuotaExceededError
,但似乎并没有说什么时候应该扔任何东西。
QuotaExceededError 由于剩余存储空间不足,或已达到存储配额而用户拒绝为数据库提供更多空间,导致操作失败。
我没有听说过硬限制,也没有在我自己的开发中达到一个。在您到达之前,性能应该向南走很远。
问题是关于 Chrome 和标记的 IndexedDB。我认为它是关于网站的,而不是 Chrome 扩展程序或应用程序(允许对 IndexedDB 进行无限存储)。
对于网站,IndexedDB 是 Chrome 临时存储的 API(来源)。所以问题是关于Chrome 中临时存储的配额。
在 Chrome 67 中,配额行为发生了变化,除了错误报告之外,这并没有真正记录下来。综合来看,目前的配额行为是:
在 Chrome正常模式下
对于离线 API(应用程序缓存、文件系统、IndexedDB、WebSQL):
如果命中“应该保持可用”值,则一个来源(“站点”)的配额将为零。“应该保持可用”值与在大容量存储上保持空闲的空间有关。自 Chrome 67 起,它是“2 GiB”和“大容量存储总容量的 10%”(来源)中的较低值。一旦达到此限制,对临时存储的额外写入将失败,但不会删除临时存储中的现有数据。
如果尚未达到“应该保持可用”值,则配额将为共享池 ( source ) 的20% 。这(可能)意味着“Chrome 已保存的临时存储中所有数据的 20%,以及 Chrome 可以保存到本地存储的所有数据,而不会达到“应该保持可用”的值”。
对于Web 存储 API(LocalStorage、SessionStorage...):5 MiB 固定(来源);我不知道这是否受到上面记录的“应该保持可用”限制的影响。
在 Chrome隐身模式下
小智 5
Google Chrome浏览器中的“ TEMPORARY”存储为IndexedDB提供了内存。Chrome上的临时存储的默认配额为可用磁盘空间的50%,您的离线应用程序可使用其中的20%。为临时存储请求更多配额不会执行任何操作。
基于以上所述,对您的问题的答案将是:
您可以使用“ 浏览器存储滥用”工具(在HTML5Rocks文章中引用,该文档记录了不同浏览器的结果)来确定您正在运行的Chrome上的可用临时存储。
我没有足够的声誉,因此无法发布更多链接,但是以上有关配额研究的HTML5Rocks文章提供了足够的详细信息,可以帮助您确定适当的存储类型(TEMPORARY或PERSISTENT)和适当的存储机制(如果您不一定要归零于IndexedDB)可能适合您的应用程序。
归档时间: |
|
查看次数: |
44341 次 |
最近记录: |