IndexedDB中的最大项目大小

时间:2011-04-17 09:53:14

标签: javascript html5 indexeddb

我正在开发一个简单的Web实用程序,它使用HTML5的IndexedDB(类似于键值DB)功能。

我一直在找,但我无法知道:我可以在商品中存储的最大尺寸是多少?

3 个答案:

答案 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相同。

  • Internet Explorer 10 :默认情况下,系统会提示用户存储10 MB的存储空间。默认情况下,每个域250 MB是硬限制,但是用户可以将自己的限制配置为1 GB。

答案 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;