用 Workbox 来创建 service worker(包括使用 Workbox CLI,Workbox Node 接口,或者 Workbox webpack 插件)的开发者们,现在(你们)可以使用一些额外的配置项:
offlineGoogleAnalytics: true
之后,Workbox 会自动帮我们在 service worker(指的是用 Workbox 来创建 service worker)里加一段代码,从而实现对 Workbox offline Google Analytics 模块的支持。runtimeCaching
route,就可以使用 fetchOptions
以及 matchOptions
,并且会在你构建相应的 Workbox 缓存策略的时候,把这些配置项以参数的形式传递过去。非常感谢 @peterjosling 在 #1608 所做的贡献。runtimeCaching
route 的时候,使用自定义的插件,感谢 @tsirlucas 在 #1598 所做的改进。下面是一些用于配置 Workbox 的代码片段,并且展示的都是新特性:
{
// ... other options ...
offlineGoogleAnalytics: true,
runtimeCaching: {[
urlPattern: /abc/,
handler: 'staleWhileRevalidate',
options: {
fetchOptions: {
mode: 'no-cors',
},
matchOptions: {
ignoreSearch: true,
},
plugins: [{
cacheDidUpdate: async ({cacheName, request, oldResponse, newResponse}) => {
// Do something in your custom plugin.
},
}],
},
]},
}
之前,开发者是需要匹配到 HTTP PATCH 请求,现在用 Workbox router 也能实现对 HTTP PATCH 请求的匹配,感谢 @kevin-brotcke 在 #1618 做的改动。
注意,只有 GET 请求才能被 workbox 缓存下来,因此在一些场景下,例如在使用 Workbox router 的时候,同时应用 network-only 策略(配置 Workbox background sync 插件)的情况下,这个规则很有用。目的是为了能够在有网的情况下,重发之前失败了的 HTTP PATCH 请求。
workbox.core.registerQuotaErrorCallback
对外可见由于作用域问题(scoping error),workbox.core.registerQuotaErrorCallback()
函数没有被暴露出来。现在这个函数的作用域属于 public,并且符合文档对接口的定义。感谢 @Tronil 在 #1616 指出存在矛盾的地方。
可以查阅我们的文档@developers.google.com/web/tools/workbox/
扫码关注w3ctech微信公众号
共收到0条回复