w3ctech

Workbox 3.5.0 发布

?新鲜事

在用 Workbox 创建 service worker 的过程中,提供更多可定制化的能力

用 Workbox 来创建 service worker(包括使用 Workbox CLIWorkbox 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.
        },
      }],
    },
  ]},
}

支持在 Workbox router 里面使用 PATCh 方法

之前,开发者是需要匹配到 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微信

扫码关注w3ctech微信公众号

共收到0条回复