Edge / Safari对Indexeddb大小有限制吗?

问题描述 投票:1回答:3

目前正在研究各种浏览器的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有过这方面的经验?

javascript web safari microsoft-edge indexeddb
3个回答
5
投票

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

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

IndexedDB Size Table

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

因此,每个域的db增长有多大取决于硬盘卷大小的大小。


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

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

但是,Safari在2018年11月首次跟踪时实施了新的IndexedDB限制:

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


2
投票

Safari目前似乎记录不佳,所以我想我会分享我最近使用Safari mobile(11.4)/ IndexedDB存储限制的经验。

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

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

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

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

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


0
投票

关于SAFARI没什么可说的,但是对于MS Edge,第一个答案中的上面表格是根据MS EDGE提供的文档以及尝试MS Edge版本38准确的。对于MS Edge版本42(我已经安装在华硕平板电脑p027上)我可以确认,限制和限制与Chrome用于缓存存储API的限制和限制非常相似。根据MDN https://developer.mozilla.org/en-US/docs/Web/API/StorageQuota,您可以查询和请求存储使用情况和配额信息。这是一项实验性技术,但会给你足够接近的估计,MS EDGE 42版本支持此属性(至少在上面提到的选项卡上,我没有在我的机器/台式机/笔记本电脑上安装MS edge 42因为你无法在不更新Windows itselt的情况下安装/更新它!)...希望这部分信息适合您,如果您找到更好的信息,请与我们分享。干杯:)


附:但肯定Safari和Edge现在都认真对待它,并且已经在他们的开发重点中。此外,Safari 12或更高版本至少支持PWA在移动设备上支持高达50mb的文本/图像级别,但不支持视频。

© www.soinside.com 2019 - 2024. All rights reserved.