在使用场景方面,是否应该优先使用cache-control
头而不是Service Workers?除了SW不支持跨浏览器之外,同时使用它们是否有任何好处?
在使用场景方面,是否应该优先使用cache-control
头而不是Service Workers?除了SW不支持跨浏览器之外,同时使用它们是否有任何好处?
完全正确。由HTTP缓存头控制的HTTP缓存位于网络和服务工作者之间。所有从服务工作者发起的fetch
请求仍使用HTTP缓存。
假设您有一个带有长时间max-age
的脚本。大多数服务工作者每次被安装时都会重新填充它们的缓存,也就是说,每当服务工作者脚本中的任何东西/任何事情发生变化时。但是,如果HTTP缓存标头被正确配置,许多要包含在服务工作者缓存中的资源仍将存在于HTTP缓存中,并且可以在不涉及网络的情况下获取。
适当配置的HTTP标头对于中介缓存代理(CDN)正常工作也非常重要。代理并不知道服务工作者及其缓存的任何信息。
更多信息请参见Jake Archibald的Caching best practices & max-age gotchas.