Edge / Safari是否对Indexeddb大小有限制?

Sam*_*Sam 5 javascript safari indexeddb microsoft-edge

当前正在研究各种浏览器的indexeddb限制。发现Chrome浏览器没有硬限制,但需要授予权限(Source),Firefox是本地存储的50%(Source),但是找不到Edge或Safari的任何内容。

我对Edge进行了实验,发现它没有IE设置的限制:每个域500MB(来源

不幸的是navigator.storage.estimate()在Edge https://developer.mozilla.org/en-US/docs/Web/API/StorageManager/estimate上不起作用

是否有人对此有使用Edge或Safari的经验?

小智 6

Safari 目前似乎没有很好的记录,所以我想我会分享我最近在 Safari mobile (11.4) / IndexedDB 存储限制方面的经验。

TLDR:50MB 配额不适用于 Safari 移动版 (11.4) 上的 IndexedDB 存储

最初我认为所有离线存储方法(Local+Cache+Session+IndexedDB+WebSQL+Cookies)的总和有一个 50MB 的硬限制。

我正在通过网络提取 180MB 的数据并将其直接转储到 IndexedDB(浏览器报告 IndexedDB 消耗了 98MB——这里正在进行某种内部压缩)和 Safari(移动 11.4)愉快地在 IndexedDB 中接受它。

50MB 限制似乎仅适用于本地/缓存存储(可能是其他),而不适用于 IndexedDB - 我猜这里适用卷百分比配额。

旁注:不要费心通过使用 LZ-string 或类似方法压缩内容来节省 IndexedDB 中的空间 - 浏览器的内部压缩实现意味着它要么没有区别,要么实际上增加了消耗!


Tyl*_*erH 5

Microsoft Edge的IndexedDB限制为全局最大值的20%,类似于Firefox和Chrome:

这取决于设备以及所使用的Edge版本。最新版本与Chrome / FF类似(原文如此),并且每个域都有以下限制-每个域最多可占全局限制的20%(适用于所有域):

IndexedDB大小表

资料来源:https : //twitter.com/gregwhitworth/status/1020391736974094336

因此,每个域的数据库可以增长多少取决于硬盘驱动器的大小。


Safari对Desktop的IndexedDB限制是无限的,根据:https : //developers.google.com/web/fundamentals/instant-and-offline/web-storage/offline-for-pwa

在移动Safari中,应用程序最多可使用50MB,而台式机Safari允许无限存储(并在5MB后提示)

但是,Safari于2018年11月首次实施了新的IndexedDB限制:

如果可用磁盘空间的大小超过1 GB,则默认限制为500 MB;否则,默认限制为200 MB。否则,它是可用磁盘空间的一半。 - WebKit的变化跟踪器