新navigator.storageAPI 在存储标准中定义,并在 Chrome 和 Firefox 中受支持。它使网络应用程序能够使用他们的网站存储包括(localStorage、IndexedDB 和 Service Worker 缓存)来持久化,如果用户的设备存储空间不足,它可以防止浏览器自动清除它。但是,如果用户手动清除他们的浏览数据,持久存储仍然会被清除。
如果系统在清除所有非持久性数据后仍处于存储压力下,则用户将需要手动清除任何剩余的持久性存储。
请求使站点存储持久化
网站可以通过调用该navigator.storage.persist方法请求使其(所有)站点存储持久化。navigator.storage.persist().then((granted) => {
if (granted) {
// e.g., inform users that their data is available offline
}
});
Chrome 会自动在参与度得分为1或已“添加到主屏幕”的网站上授予此权限;如果没有满足任何条件,请求将被自动拒绝。另一方面,Firefox 会提示用户:

Firefox 提示用户允许网站在持久存储中存储数据
您可以在chrome://site-engagement页面上查看您自己的不同网站的网站参与度分数。
获取站点存储使用情况和配额估计
该navigator.storage.estimate方法返回一个网站当前用于站点存储的空间的估计值,以及该网站总共有多少空间可用的保守估计值。例如,Web 应用程序可以使用此信息来确定缓存多少文件以供离线使用。navigator.storage.estimate().then(({ usage, quota }) => {
// usage = used storage space
// quota = total available storage space
});
此 API 返回的数字大致对应于 Chrome DevTools 的应用程序面板中显示的信息:
Chrome DevTools 中的应用程序面板显示站点的已用存储空间和总可用存储空间

如果网站的存储使用量超过其存储配额,QuotaExceededError则会抛出 a。请注意,“不透明响应”,即缺少正确 CORS 标头的跨域响应,最小大小为 7 MB(这是一种保护措施)。
翻译于:https://webplatform.news/issues/2018-11-07
网友回复
如何编写一个chrome插件实现多线程高速下载大文件?
cdn版本的vue在网页中出现typeerror错误无法找到错误代码位置怎么办?
pywebview能否使用webrtc远程控制共享桌面和摄像头?
pywebview6.0如何让窗体接受拖拽文件获取真实的文件路径?
如何在linux系统中同时能安装运行apk的安卓应用?
python有没有离线验证码识别ocr库?
各家的ai图生视频及文生视频的api价格谁最便宜?
openai、gemini、qwen3-vl、Doubao-Seed-1.6在ui截图视觉定位这款哪家更强更准?
如何在linux上创建一个沙箱隔离的目录让python使用?
pywebview如何使用浏览器自带语音识别与webspeech 的api?