我正在开发一个简单的Web实用程序,它使用HTML5的IndexedDB(类似于键值DB)功能。
我一直在找,但我无法知道:我可以在商品中存储的最大尺寸是多少?
答案 0 :(得分:32)
来自support.mozilla.com的mbrubeck的答案:
默认情况下,在Firefox 4中,一个站点最多可以使用50MB的IndexedDB存储。如果它尝试使用超过50MB,Firefox将要求用户许可:http://mxr.mozilla.org/mozilla-central/source/modules/libpref/init/all.js#101
在适用于移动设备的Firefox(Google Android和诺基亚Maemo)中,如果网站尝试使用超过5MB的内容,Firefox会要求获得许可:http://mxr.mozilla.org/mozilla-central/source/mobile/android/app/mobile.js#571
[...]
如果用户授予网站超过50 MB IndexedDB配额的权限,那么据我所知,Firefox不会施加更多限制。 IndexedDB数据库大小的唯一限制是用户的磁盘空间和操作系统。
localStorage配额为5000KB,网站无法要求浏览器在localStorage中存储超过该数量的权限。
我认为单个项目的大小没有特定限制,只有全局限制,但您需要对其进行测试。
答案 1 :(得分:15)
添加到Nickolay的答案,以下是Chrome和IE中的IndexedDB容量的描述
Chrome(桌面):默认情况下,对于网络应用,Chrome不会在使用indexedDB API存储数据时提示用户。它使用共享池的概念,这里是完整的描述 - Chrome HTML5 Offline Storage
Chrome for Android :找不到任何说明配额的官方链接。但根据我的经验,我已经保存了300 MB的数据而没有任何提示。最可能与桌面Chrome相同。
答案 2 :(得分:5)
对于使用现代浏览器的普通网站,您无需担心indexedDB中的可用存储空间,因为它的容量更高。
最大存储容量取决于两个因素,浏览器和磁盘空间。
因此,Chrome和大多数基于铬的浏览器允许使用80%的磁盘空间,而每个来源可以使用其中的75%。就是说 如果您有100GB的磁盘空间,那么80GB可用于将数据存储在indexedDB中,而60GB的空间可用于单个源。
此外, Firefox 允许每个来源存储2GB数据, Safari 允许每个来源存储1GB。
您可以按以下方式检查可用空间和已用空间的总和-
const quota = await navigator.storage.estimate();
const totalSpace = quota.quote;
const usedSpace = quote.used;