新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
网友回复
DLNA与UPnP的区别和不同?
苏超自建抢票app,通过先预约再抽签化解高并发抢票?
python如何让给电脑在局域网中伪装成电视接收手机的投屏图片视频播放?
如何结合python+js如何自己的视频编码与加密播放直播?
python如何在电脑上通过局域网将本地视频或m3u8视频投屏电视播放?
腾讯视频爱奇艺优酷vip电影电视剧视频如何通过python绕过vip收费直接观看?
有没有可免费观看全球电视台直播m3u8地址url的合集?
有没有实现观影自由的免vip影视苹果 CMS V10 API的可用url?
python如何实时检测电脑usb插入检测报警?
如何判断真人操作的鼠标移动直线轨迹与机器操作的轨迹?