3

我正在尝试了解工作箱和服务人员。

使用 workbox-webpack-plugin 和 GenerateSW 模式时,用于预缓存资产的工作箱策略是什么?IE。cacheFirst、staleWhileRevalidate 等。因为我似乎没有为预缓存资产设置路由/策略,以便服务人员更新这些资产的缓存。那么这些的默认处理程序是什么?

其次,来自服务器响应的 Cache-Control 标头如何在工作箱策略中发挥作用以刷新资产?如果有的话。

回答根 /index.html 资产的问题对我最有帮助。

谢谢。

4

1 回答 1

4

workbox-webpack-plugin生成一个调用 的服务工作者,workbox.precaching.precacheAndRoute([...])其中包含一组 URL(以及每个 URL 的可选修订信息)。

调用precacheAndRoute()做两件事:

  • 预缓存所有提供的 URL。

  • 自动为您创建一个fetch处理程序,它将检查传入的请求以查看它是否与预缓存的 URL 匹配,如果是,则使用有效的缓存优先策略进行响应。(这是和路由部分。)匹配时调用的代码不是字面意思workbox.strategies.cacheFirst(),但大致等价。

如果预缓存清单中的给定条目提供了带外修订信息, Workbox 将自动避免浏览器的 HTTP 缓存——它使用该信息作为 URL 内容可能随时间变化的信号。该模块的文档workbox-precaching正在发生的事情有更多的了解。

于 2018-09-06T20:10:56.363 回答