Edge/Safari 对 Indexeddb 大小有限制吗?
Does Edge/Safari have a limit on Indexeddb size?
目前正在研究各种浏览器的 indexeddb 限制。发现 Chrome 没有硬性限制,但需要授予权限 (Source),Firefox 占本地存储的 50%
(Source) 但找不到适用于 Edge 或 Safari 的任何内容。
我试用了 Edge,发现它没有 IE 设置的限制:每个域 500MB (Source)
遗憾的是 navigator.storage.estimate()
无法在 Edge 上运行 https://developer.mozilla.org/en-US/docs/Web/API/StorageManager/estimate
有没有人有这方面的 Edge 或 Safari 经验?
Microsoft Edge 的 IndexedDB 限制是全局最大值的 20%,类似于 Firefox 和 Chrome:
It depends on the device and which version of Edge you're using. The latest version is similar (sic) to Chrome/FF and have the following limits per domain - each domain can take up to 20% of the global limit (which is for all domains):
Source: https://twitter.com/gregwhitworth/status/1020391736974094336
因此,每个域的数据库可以增长多大取决于您的硬盘驱动器卷大小。
Safari 的 IndexedDB 限制对于桌面版是无限的,根据:https://developers.google.com/web/fundamentals/instant-and-offline/web-storage/offline-for-pwa
In mobile Safari, apps can use up to 50MB max, whereas desktop Safari allows unlimited storage (and prompts after 5MB)
但是,Safari 在 2018 年 11 月首次跟踪时实施了新的 IndexedDB 限制:
If the size of free disk space is over 1 GB, the default limit is 500 MB; otherwise it is half the free disk space.
- WebKit change tracker
目前 Safari 的文档似乎很少,所以我想我会分享我最近对 Safari 移动版 (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 字符串或类似内容压缩内容来尝试在 IndexedDB 中保存 space - 浏览器内部压缩实现意味着它要么没有任何区别,要么实际上增加了消耗!
关于 SAFARI 没什么可说的,但对于 MS Edge,根据 MS EDGE 提供的文档以及如果您尝试 MS,第一个答案中显示的 table 是准确的Edge 版本 38。对于 MS Edge 版本 42(我已经安装在 ASUS tablet p027 上)我可以确认,限制和限制与缓存的 Chrome 非常相同存储 API。根据 MDN https://developer.mozilla.org/en-US/docs/Web/API/StorageQuota ,您可以查询和请求存储使用情况和配额信息。这是一项实验性技术,但会给你足够接近的估计,并且这个 属性 在 MS EDGE 42 版本上受支持(至少在上述选项卡上,我没有在我的 machine/desktop/laptop 因为如果不更新 Windows 本身就不能 install/update!)...希望这部分信息对您有用,如果您找到更好的信息,请与我们分享。干杯:)
P.S。但可以肯定的是,Safari 和 Edge 现在都在认真对待它,并且已经在他们的开发重点中。此外,Safari 12 或更高版本至少支持 text/images 级别的 PWA,在移动设备上最高可达 50mb,但不支持视频。
截至 2020 年 10 月 19 日,接受的答案似乎无法通过示例来证明,因为我刚刚使用 indexedDB 将 30G 加载到 Chrome 和 Edge(两者的最新版本)中。我一次这样做了 1G,每次迭代都有数百个对象,以便让两种浏览器有足够的机会反对他们是否选择这样做。他们没有。
数据在浏览器重新启动后保持持久和可用。根据接受的答案,我应该限制在 4G(20G 的 20%,因为我的磁盘是 500G,或“>128GB”)。
在适用于 iPadOS 14.5.1 的 Safari 中,一个网站最多可以为 IndexedDB 使用 2 GB 的空间。
目前正在研究各种浏览器的 indexeddb 限制。发现 Chrome 没有硬性限制,但需要授予权限 (Source),Firefox 占本地存储的 50% (Source) 但找不到适用于 Edge 或 Safari 的任何内容。
我试用了 Edge,发现它没有 IE 设置的限制:每个域 500MB (Source)
遗憾的是 navigator.storage.estimate()
无法在 Edge 上运行 https://developer.mozilla.org/en-US/docs/Web/API/StorageManager/estimate
有没有人有这方面的 Edge 或 Safari 经验?
Microsoft Edge 的 IndexedDB 限制是全局最大值的 20%,类似于 Firefox 和 Chrome:
It depends on the device and which version of Edge you're using. The latest version is similar (sic) to Chrome/FF and have the following limits per domain - each domain can take up to 20% of the global limit (which is for all domains):
Source: https://twitter.com/gregwhitworth/status/1020391736974094336
因此,每个域的数据库可以增长多大取决于您的硬盘驱动器卷大小。
Safari 的 IndexedDB 限制对于桌面版是无限的,根据:https://developers.google.com/web/fundamentals/instant-and-offline/web-storage/offline-for-pwa
In mobile Safari, apps can use up to 50MB max, whereas desktop Safari allows unlimited storage (and prompts after 5MB)
但是,Safari 在 2018 年 11 月首次跟踪时实施了新的 IndexedDB 限制:
If the size of free disk space is over 1 GB, the default limit is 500 MB; otherwise it is half the free disk space. - WebKit change tracker
目前 Safari 的文档似乎很少,所以我想我会分享我最近对 Safari 移动版 (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 字符串或类似内容压缩内容来尝试在 IndexedDB 中保存 space - 浏览器内部压缩实现意味着它要么没有任何区别,要么实际上增加了消耗!
关于 SAFARI 没什么可说的,但对于 MS Edge,根据 MS EDGE 提供的文档以及如果您尝试 MS,第一个答案中显示的 table 是准确的Edge 版本 38。对于 MS Edge 版本 42(我已经安装在 ASUS tablet p027 上)我可以确认,限制和限制与缓存的 Chrome 非常相同存储 API。根据 MDN https://developer.mozilla.org/en-US/docs/Web/API/StorageQuota ,您可以查询和请求存储使用情况和配额信息。这是一项实验性技术,但会给你足够接近的估计,并且这个 属性 在 MS EDGE 42 版本上受支持(至少在上述选项卡上,我没有在我的 machine/desktop/laptop 因为如果不更新 Windows 本身就不能 install/update!)...希望这部分信息对您有用,如果您找到更好的信息,请与我们分享。干杯:)
P.S。但可以肯定的是,Safari 和 Edge 现在都在认真对待它,并且已经在他们的开发重点中。此外,Safari 12 或更高版本至少支持 text/images 级别的 PWA,在移动设备上最高可达 50mb,但不支持视频。
截至 2020 年 10 月 19 日,接受的答案似乎无法通过示例来证明,因为我刚刚使用 indexedDB 将 30G 加载到 Chrome 和 Edge(两者的最新版本)中。我一次这样做了 1G,每次迭代都有数百个对象,以便让两种浏览器有足够的机会反对他们是否选择这样做。他们没有。
数据在浏览器重新启动后保持持久和可用。根据接受的答案,我应该限制在 4G(20G 的 20%,因为我的磁盘是 500G,或“>128GB”)。
在适用于 iPadOS 14.5.1 的 Safari 中,一个网站最多可以为 IndexedDB 使用 2 GB 的空间。