大多数浏览器提供 localStorage,每个域的存储限制为 5MB。
对于服务工作者是否存在这样的内存限制/约束?
我知道网络工作人员(服务工作人员所基于的)没有这样的限制。但 Web Workers 并不完全用于资源缓存,而是更多地用于处理(因此 CPU 是主要关注点)。
如果内存大小没有限制,设计糟糕的网站会让浏览器崩溃吗?
2018 年 1 月 15 日更新
The 存储管理器Storage API 接口正在成为所有与存储相关的 api 查询的标准。正如所提到的@米格尔-拉图阿达, the 估计API将提供网络应用程序使用的存储空间的估计值和可用存储空间。另外,请注意超出配额错误异常这将帮助我们处理错误场景。
eg code:
if ('storage' in navigator && 'estimate' in navigator.storage) {
navigator.storage.estimate().then(({usage, quota}) => {
console.log(`Using ${usage} out of ${quota} bytes.`);
}).catch(error => {
console.error('Loading storage estimate failed:');
console.log(error.stack);
});
} else {
console.error('navigator.storage.estimate API unavailable.');
}
有关更多信息,请参阅以下 2 篇精彩文章:
- MDN 网络文档 - 存储 API
- Google 开发人员:估计可用存储空间
2017 年 3 月 16 日(仅供参考/历史)
最近我看到这篇文章:离线食谱其中规定如下:
Your origin 被赋予一定量的可用空间做它想做的事。那可用空间在所有原始存储之间共享:LocalStorage、IndexedDB、文件系统,当然还有缓存。
The 您收到的金额未指定,它会根据设备和存储条件而有所不同。您可以通过以下方式了解您有多少:
navigator.storageQuota.queryInfo("temporary").then(function(info) {
console.log(info.quota);
// Result: <quota in bytes>
console.log(info.usage);
// Result: <used data in bytes>
});
上面的代码可能不适用于所有浏览器。 (例如:在 chrome
其他有用的信息/资源
-
As per 渐进式 Web 应用程序的离线存储通过阿迪·奥斯马尼
In Chrome and Opera
:您的存储是按源(而不是按 API)进行的。两种存储机制都会存储数据,直到达到浏览器配额。应用程序可以使用配额管理 API 检查它们使用了多少配额(如上所述)。
Firefox
无限制,但存储50MB数据后会提示
Mobile Safari
最大 50MB
Desktop Safari
无限制(5MB后提示)
IE10+
最大为 250MB,并在 10MB 时提示
更详细的指南在移动浏览器上使用配额作者:北村英二。
目前,这些是针对我的问题找到的最相关的文章/解决方案。如果有人知道更好的文章或规格,请分享。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)