【问题标题】:How to cache service worker source file at least for 24hour如何缓存服务工作者源文件至少 24 小时
【发布时间】:2018-09-06 14:56:44
【问题描述】:
是否有可能将 Service Worker 源文件缓存至少 24 小时?我试过提供缓存控制:public,max-age=1440。但它不起作用。
此外,如果页面包含 iframe,并且您单独重新加载该 iframe,则会从服务器下载 sw.js(服务工作者脚本)。
知道为什么会这样吗?如何避免这种情况?
【问题讨论】:
标签:
caching
browser-cache
service-worker
cache-control
service-worker-events
【解决方案1】:
您所看到的是由于“Fresher service workers, by default”中描述的行为。
特别是,如果您想选择使用 HTTP 缓存来满足您的 Service Worker 请求(最多 24 小时;之后,它们将始终与网络冲突),您可以使用如下代码:
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/sw.js', {
updateViaCache: 'all',
});
}