我是否知道可用于防止addEventListener('fetch'
&&的策略是什么? cache.put(
来填满用户的磁盘空间?无论如何都要为缓存中的每个请求设置expirary?
答案 0 :(得分:3)
According to the service worker spec:
Cache对象正是作者必须自己管理的对象。 除非作者明确请求,否则不会更新Cache对象 他们是。除非作者删除,否则Cache对象不会过期 条目。
请注意the browser can throw your cache away如果它想要(并且你应该假设它有时会这样),特别是如果它决定你存储太多 - 它不会让你填满用户的整个驱动器。
似乎没有任何方法可以检查缓存的大小。但请注意,工作中存在相关规范,例如Quota Management API。上面链接的Jake Archibald的文章提供了以下使用此API的示例(它将为您提供所有站点存储的结果,而不仅仅是您的缓存):
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 Canary中尝试了此操作,storageQuota
未定义 - 我不认为这是在任何地方实施的。如果我错了,希望有人会纠正我。