0

是否有可能将 service worker 源文件缓存至少 24 小时?我试过提供缓存控制:public,max-age=1440。但它不起作用。

此外,如果页面包含 iframe,并且您单独重新加载该 iframe,则将从服务器下载 sw.js(服务工作脚本)。

知道为什么会这样吗?如何避免这种情况?

4

1 回答 1

0

您看到的是由于“ Fresher service workers, by default ”中描述的行为。

特别是,如果您想选择使用 HTTP 缓存来满足您的 service worker 请求(最多 24 小时;之后,它们将始终与网络冲突),您可以使用如下代码:

if ('serviceWorker' in navigator) {
  navigator.serviceWorker.register('/sw.js', {
    updateViaCache: 'all',
  });
}
于 2018-09-06T17:32:18.963 回答