我正在开发一个简单的网络工具,利用了HTML5的IndexedDB(类似于键值数据库)功能。
我在寻找答案,但是无法确定:每个数据项可以存储的最大大小是多少?
我正在开发一个简单的网络工具,利用了HTML5的IndexedDB(类似于键值数据库)功能。
我在寻找答案,但是无法确定:每个数据项可以存储的最大大小是多少?
这是一个关于编程的旧回答,在Firefox 38(2015-05)发布后被淘汰,其中移除dom.indexedDB.warningQuota
:
mbrubeck在support.mozilla.com上的回答(我已经用永久版本替换了他提供的链接):
在Firefox 4中,默认情况下,网站可以使用最多50MB的IndexedDB存储。如果它尝试使用超过50MB,则Firefox将请求用户权限:http://mxr.mozilla.org/mozilla-central/source/modules/libpref/src/init/all.js#101 在移动设备上的Firefox(Google Android和Nokia Maemo),如果网站尝试使用超过5MB,Firefox会请求权限:http://mxr.mozilla.org/mozilla-central/source/mobile/app/mobile.js#571 [...]对于使用现代浏览器的普通网站,您不需要担心 indexedDB 中可用的存储空间,因为它要高得多。
最大存储大小取决于两个因素:浏览器和磁盘空间。
所以,Chrome 和大多数基于 Chromium 的浏览器允许使用 80% 的磁盘空间,其中每个来源可以使用 75%。这意味着, 如果您有 100GB 的磁盘空间,则可以使用 80GB 来存储 indexedDB 中的数据,其中单个来源可以使用 60GB。
此外,Firefox 允许每个来源存储 2GB 的数据,Safari 则允许每个来源存储 1GB。
您可以通过以下方式检查可用空间和已使用空间-
const quota = await navigator.storage.estimate();
const totalSpace = quota.quota;
const usedSpace = quota.usage;
在Nickolay的回答基础上,以下是Chrome和IE中IndexedDB容量的描述:
桌面版Chrome:对于Web应用程序,默认情况下,Chrome在使用IndexedDB API存储数据时不会提示用户。它使用了共享池的概念,这里是完整的描述 - Chrome HTML5离线存储
Android版Chrome:没有找到任何官方链接来说明配额。但是根据我的经验,我保存了300 MB的数据而没有出现任何提示。很可能与桌面版Chrome的行为相同。