【发布时间】:2017-02-26 08:44:32
【问题描述】:
是否有任何用例应该优先使用 cache-control 标头而不是 Service Worker?使用它们有什么好处(除了 SW 不支持跨浏览器)?
【问题讨论】:
标签: performance caching cache-control service-worker
是否有任何用例应该优先使用 cache-control 标头而不是 Service Worker?使用它们有什么好处(除了 SW 不支持跨浏览器)?
【问题讨论】:
标签: performance caching cache-control service-worker
当然。由 HTTP 缓存头控制的 HTTP 缓存位于网络和服务工作者之间。从 Service Worker 发起的所有 fetch 请求仍然使用 HTTP 缓存。
假设您有一个长 max-age 的脚本。大多数 Service Worker 每次安装时都会重新填充它们的缓存,也就是说,每当 Service Worker 脚本中的某些/任何内容发生变化时。但是,如果正确配置了 HTTP 缓存标头,许多要包含在 Service Worker 缓存中的资源仍会存在于 HTTP 缓存中,并且可以在不涉及网络的情况下获取。
正确配置的 HTTP 标头对于中间缓存代理 (CDN) 正常工作也是必不可少的。代理对 Service Worker 及其缓存一无所知。
Jake Archibald 的 Caching best practices & max-age gotchas 对此有更多的了解。
【讨论】: