IndexedDB 中的最大项目大小

IT技术 javascript html indexeddb
2021-01-17 17:42:32

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

我一直在寻找,但我不知道:我可以存放在物品中的最大尺寸是多少?

3个回答

我认为单个项目的大小没有特定限制,只有全局限制。

自最初编写此答案以来,有关全局限制的规则已更改。所述向上的最新文档是关于MDN -取决于可用的磁盘空间,“基团”极限(对于给定的结构域,包括其所有的子域)的范围可以从10 MB到2 GB。


较旧的答案 - 随着 Firefox 38 (2015-05) 的发布而过时,它删除了dom.indexedDB.warningQuota

来自mbrubeck在 support.mozilla.com 上的回答(我已经用 perma-versions 替换了他提供的链接):

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

在用于移动设备的 Firefox(Google Android 和诺基亚 Maemo)中,如果站点尝试使用超过 5MB 的空间,Firefox 将请求许可:http : //mxr.mozilla.org/mozilla-central/source/mobile/app/mobile。 js#571 [...]

如果用户授予站点超过 50 MB IndexedDB 配额的权限,那么据我所知,Firefox 不会再施加任何限制。IndexedDB 数据库大小的唯一限制是用户的磁盘空间和操作系统。

localStorage 配额是 5000KB,网站无法向浏览器请求在 localStorage 中存储超过该数量的权限。

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

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

  • Chrome for Android:找不到任何官方链接来说明配额。但是根据我的经验,我在没有任何提示的情况下保存了 300 MB 的数据。很可能与桌面 Chrome 的行为相同。

  • Internet Explorer 10:默认情况下,系统会提示用户提供 10 MB 的存储空间。默认情况下,每个域 250 MB 是硬限制,但用户可以配置自己的限制,直到 1 GB。
IOS Safari怎么样?这可能是浏览器中最大的限制。
2021-03-20 17:42:32
2021-04-03 17:42:32
indexdb 存储与本地存储不同吗?
2021-04-09 17:42:32

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

最大存储大小取决于两件事,浏览器磁盘空间

因此,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;