Nac*_*tha 66 javascript service-worker progressive-web-apps
大多数浏览器为localStorage提供每个域5MB的存储限制.服务工作者是否存在此类内存限制/限制?
我知道网络工作者(服务工作者所在的网站)没有这样的限制.但Web Workers并不完全用于资产缓存,而是更多地用于处理(因此CPU是主要关注点).
如果内存大小没有限制,那么设计糟糕的网站可能会使浏览器崩溃吗?
Nac*_*tha 72
2018年1月15日更新
Storage API 的StorageManager接口正在成为所有与存储相关的api查询的标准.正如@ miguel-lattuada所提到的,估算API将提供对可用存储使用Web应用程序的存储的估计.另外,请注意QuotaExceededError异常,它有助于我们处理错误情况.
例如代码:
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.');
}Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅以下2篇精彩文章:
2017年3月16日(仅供参考/历史)
最近我遇到了这篇文章:离线烹饪书,如下:
你的起源有一定的自由空间来做你想做的事.这个自由空间所有原来的存储共享:本地存储,索引资料,文件系统,当然缓存.
您获得的金额未指定,具体取决于设备和存储条件.你可以通过以下方式了解你有多少:
navigator.storageQuota.queryInfo("temporary").then(function(info) {
console.log(info.quota);
// Result: <quota in bytes>
console.log(info.usage);
// Result: <used data in bytes>
});
Run Code Online (Sandbox Code Playgroud)
上述代码可能无法在所有浏览器中使用.(例如:在chrome <48中,可能需要查找webkitPersistentStorage等)
其他有用的信息/资源
根据Addy Osmani的渐进式Web应用程序的离线存储
在Chrome and Opera:您的存储是按来源(而不是每个API).两种存储机制都将存储数据,直到达到浏览器配额.应用可以使用配额管理API检查他们使用的配额(如上所述).
Firefox 没有限制,但会在存储50MB数据后提示
Mobile Safari 最多50MB
Desktop Safari 无限制(5MB后提示)
IE10+ 最大值为250MB,提示为10MB
目前,这些是我的问题找到的最相关的文章/解决方案.如果有人知道一些更好的文章或规格,请分享.
没有明确的限制.所有现代浏览器都是多进程或类似的,因此设计糟糕的页面(或SW)不会比崩溃本身更糟糕.
请注意,由于任何原因,SW规范非常明确地表示浏览器可以随时终止并重启SW.(如果DevTools在页面上打开,Chrome会不断地为页面杀死SW,以鼓励您采用良好的做法.)
| 归档时间: |
|
| 查看次数: |
18373 次 |
| 最近记录: |