除了对缓存逻辑能提供更细粒度的控制之外,Service Worker 缓存还提供:
stale-while-revalidate
策略),或者提供完整的离线体验(使用cache only
策略),甚至介于两者之间,例如自定义 UI 页面的某些部分来自 service worker 缓存,并且在适当的情况下排除了某些部分(使用Set catch handler
策略)。
当然,HTTP 缓存作为一项成熟的技术,可以作为 Service Worker 缓存有益的补充。
浏览器第一次加载网页和相关资源时,会将这些资源存储在其 HTTP 缓存中。 HTTP 缓存通常由浏览器自动启用,除非最终用户明确禁用它。
使用 HTTP 缓存意味着依靠服务器来确定何时缓存资源以及缓存多长时间。
当服务器响应浏览器对资源的请求时,服务器使用 HTTP 响应标头告诉浏览器应该缓存资源多长时间。
看一个例子:
If-None-Match: "62e701da-63ba-gzip"