Chrome 允许浏览器使用多达 80% 的总磁盘空间。一个来源最多可以使用总磁盘空间的 60%。

https://web.dev/storage-for-the-web/#check

 

 

https://web.dev/storage-for-the-web/#:~:text=Chrome%20allows%20the%20browser%20to%20use%20up%20to,may%20allow%20the%20browser%20to%20use%20more%20storage.

 

  • 简而言之,很多,至少几百 MB,甚至可能是几百 GB 或更多。浏览器实施各不相同,但可用存储量通常取决于设备上可用的存储量。

    • Chrome 允许浏览器使用多达 80% 的总磁盘空间。一个来源最多可以使用总磁盘空间的 60%。您可以使用 StorageManager API 来确定可用的最大配额。其他基于 Chromium 的浏览器可能允许浏览器使用更多的存储空间。有关 Chrome 实施的详细信息,请参阅 PR #3896
    • Internet Explorer 10 及更高版本最多可以存储 250MB,并且在使用量超过 10MB 时会提示用户。
    • Firefox 允许浏览器使用多达 50% 的可用磁盘空间。eTLD+1 组(例如 example.com 、www.example.com 和 foo.bar.example.com最多可以使用 2GB。您可以使用 StorageManager API 来确定还有多少空间可用。
    • Safari(桌面版和移动版)似乎允许 1GB 左右。当达到限制时,Safari 会提示用户,同时以 200MB 的增量增加限制。我找不到有关这方面的任何官方文档。
      • 如果将 PWA 添加到移动 Safari 的主屏幕上,它似乎会创建一个新的存储容器,并且 PWA 和移动 Safari 之间不会共享任何内容。一旦已安装的 PWA 达到配额,似乎就没有任何方法可以请求额外的存储空间。

    过去,如果站点存储的数据超过某个阈值,浏览器会提示用户授权使用更多的数据。例如,如果来源的使用量超过 50MB,浏览器会提示用户允许它最多存储 100MB,然后以 50MB 的增量再次询问。

    如今,大多数现代浏览器都不会提示用户,而是允许站点最多用完为其分配的配额。Safari 好像是例外,它会在 750MB 时进行提示,请求允许存储最多 1.1GB。如果来源尝试使用的量超过为其分配的配额,则进一步尝试写入数据将失败。

如何检查有多少可用存储? #

许多浏览器中,您可以使用 StorageManager API 来确定来源的可用存储量及其目前使用的存储量。它会报告 IndexedDB 和缓存 API 使用的总字节数,还可以计算近似的可用剩余存储空间。

if (navigator.storage && navigator.storage.estimate) {
const quota = await navigator.storage.estimate();
// quota.usage -> 已用字节数。
// quota.quota -> 最大可用字节数。
const percentageUsed = (quota.usage / quota.quota) * 100;
console.log(`您已使用可用存储的 ${percentageUsed}%。`);
const remaining = quota.quota - quota.usage;
console.log(`您最多可以再写入 ${remaining} 个字节。`);
}

StorageManager 尚未在所有浏览器中实施,因此您必须在使用前对其进行功能检测。即使它可用,您仍必须捕获超出配额错误(见下文)。在某些情况下,可用配额可能会超过实际可用存储量。

posted @ 2022-06-21 18:00  China Soft  阅读(417)  评论(0编辑  收藏  举报