我正在开发一个简单的Web实用程序,它利用了HTML5的IndexedDB(类似于键-值DB)特性。我在寻找但我无法知道:我可以在一个项目中存储的最大大小是多少?
5cnsuln71#
我不认为对单个项目的大小有具体的限制,只有全球性的限制。自最初编写此答案以来,有关全局限制的规则已更改。最新文档位于MDN上-根据可用磁盘空间,“组”限制(对于给定域,包括其所有子域)的范围为10 MB到2 GB。旧版本的答案-在Firefox 38(2015-05)发布时已过时,其中removed dom.indexedDB.warningQuota:来自mbrubeck在www.example.com上的回答support.mozilla.com(我已经用perma版本替换了他提供的链接):默认情况下,在Firefox 4中,一个站点最多可以使用50 MB的IndexedDB存储空间。如果它试图使用超过50 MB的存储空间,Firefox会向用户请求权限:http://mxr.mozilla.org/mozilla-central/source/modules/libpref/src/init/all.js#101在移动的设备(Google Android和Nokia Maemo)的Firefox中,如果一个站点试图使用超过5 MB的空间,Firefox将请求许可:网站http://mxr.mozilla.org/mozilla-central/source/mobile/app/mobile.js#571如果用户对一个网站赠款权限超过了50 MB的IndexedDB配额,那么据我所知Firefox不会再施加任何限制。对IndexedDB数据库大小的唯一限制是用户的磁盘空间和操作系统。localStorage配额为5000 KB,网站无法要求浏览器允许在localStorage中存储超过该数量的内容。
dom.indexedDB.warningQuota
ibps3vxo2#
添加到Nickolay的答案,这里是在Chrome和IE中的IndexedDB容量的描述
*Chrome(桌面):默认情况下,For Web-apps chrome在使用indexedDB API存储数据时不会提示用户。它使用了共享池的概念,以下是完整的描述- Chrome HTML5离线存储*适用于Android的Chrome浏览器:找不到任何官方链接说明配额。但从我的经验,我已经保存了300 MB的数据没有任何提示。最有可能相同的行为作为桌面Chrome。*互联网浏览器10:默认情况下,系统会提示用户将存储空间设置为10 MB。默认情况下,每个域的硬限制为250 MB,但用户可以配置自己的限制,最高为1 GB。
mzaanser3#
对于一个使用现代浏览器的普通网站,你不需要担心indexedDB中的可用存储空间,因为它要高得多。最大存储大小取决于两个因素:浏览器和磁盘空间。因此,Chrome和大多数基于chrome的浏览器允许使用80%的磁盘空间,其中75%可以由每个源使用。这意味着,如果您有100 GB的磁盘空间,那么80 GB可以用于存储indexedDB中的数据,其中60 GB可以由单个源使用。此外,Firefox允许每个源存储2GB数据,Safari允许每个源存储1GB数据。您可以通过以下方式检查总可用空间和已用空间-
const quota = await navigator.storage.estimate(); const totalSpace = quota.quota; const usedSpace = quota.usage;
3条答案
按热度按时间5cnsuln71#
我不认为对单个项目的大小有具体的限制,只有全球性的限制。
自最初编写此答案以来,有关全局限制的规则已更改。最新文档位于MDN上-根据可用磁盘空间,“组”限制(对于给定域,包括其所有子域)的范围为10 MB到2 GB。
旧版本的答案-在Firefox 38(2015-05)发布时已过时,其中removed
dom.indexedDB.warningQuota
:来自mbrubeck在www.example.com上的回答support.mozilla.com(我已经用perma版本替换了他提供的链接):
默认情况下,在Firefox 4中,一个站点最多可以使用50 MB的IndexedDB存储空间。如果它试图使用超过50 MB的存储空间,Firefox会向用户请求权限:http://mxr.mozilla.org/mozilla-central/source/modules/libpref/src/init/all.js#101
在移动的设备(Google Android和Nokia Maemo)的Firefox中,如果一个站点试图使用超过5 MB的空间,Firefox将请求许可:网站http://mxr.mozilla.org/mozilla-central/source/mobile/app/mobile.js#571
如果用户对一个网站赠款权限超过了50 MB的IndexedDB配额,那么据我所知Firefox不会再施加任何限制。对IndexedDB数据库大小的唯一限制是用户的磁盘空间和操作系统。
localStorage配额为5000 KB,网站无法要求浏览器允许在localStorage中存储超过该数量的内容。
ibps3vxo2#
添加到Nickolay的答案,这里是在Chrome和IE中的IndexedDB容量的描述
*Chrome(桌面):默认情况下,For Web-apps chrome在使用indexedDB API存储数据时不会提示用户。它使用了共享池的概念,以下是完整的描述- Chrome HTML5离线存储
*适用于Android的Chrome浏览器:找不到任何官方链接说明配额。但从我的经验,我已经保存了300 MB的数据没有任何提示。最有可能相同的行为作为桌面Chrome。
*互联网浏览器10:默认情况下,系统会提示用户将存储空间设置为10 MB。默认情况下,每个域的硬限制为250 MB,但用户可以配置自己的限制,最高为1 GB。
mzaanser3#
对于一个使用现代浏览器的普通网站,你不需要担心indexedDB中的可用存储空间,因为它要高得多。
最大存储大小取决于两个因素:浏览器和磁盘空间。
因此,Chrome和大多数基于chrome的浏览器允许使用80%的磁盘空间,其中75%可以由每个源使用。这意味着,如果您有100 GB的磁盘空间,那么80 GB可以用于存储indexedDB中的数据,其中60 GB可以由单个源使用。
此外,Firefox允许每个源存储2GB数据,Safari允许每个源存储1GB数据。
您可以通过以下方式检查总可用空间和已用空间-