IndexedDB中的最大项目大小

Eri*_*ron 38 javascript html5 indexeddb

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

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

Nic*_*lay 35

来自mbrubeck在support.mozilla.com 的回答:

默认情况下,在Firefox 4中,站点最多可以使用50MB的IndexedDB存储.如果它试图使用超过50MB,Firefox将要求用户许可:http://mxr.mozilla.org/mozilla-central/source/modules/libpref/init/all.js#101

在用于移动设备的Firefox(谷歌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中存储超过该数量的权限.

我认为单个项目的大小没有特定限制,只有全局限制,但您需要对其进行测试.


小智 19

添加到Nickolay的答案,以下是Chrome和IE中IndexedDB容量的描述

  • Chrome(桌面):默认情况下,对于Web应用程序,chrome在使用indexedDB API存储数据时不会提示用户.它使用共享池的概念,这里是完整的描述 - Chrome HTML5离线存储

  • Chrome for Android:找不到任何说明配额的官方链接.但根据我的经验,我已经保存了300 MB的数据而没有任何提示.最有可能与桌面Chrome相同.

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


Mad*_*sal 10

对于使用现代浏览器的普通网站,您无需担心 indexedDB 中的可用存储空间,因为它要高得多。

最大存储大小取决于 2 件事,BrowserDisk space

因此,Chrome 和大多数基于铬的浏览器允许使用 80% 的磁盘空间,其中 75% 可供每个源使用。这意味着,如果您有 100GB 的磁盘空间,那么 80GB 可用于在 indexedDB 中存储数据,其中 60GB 可用于单一来源。

此外,Firefox允许每个源存储 2GB 数据,而Safari允许每个源存储1GB。

您可以通过以下方式检查总可用空间和已用空间-

const quota = await navigator.storage.estimate();
const totalSpace = quota.quota;
const usedSpace = quota.usage;
Run Code Online (Sandbox Code Playgroud)