如何实现“然后缓存网络”#39;使用Workbox的策略

时间:2017-11-14 20:40:53

标签: service-worker progressive-web-apps workbox

我尝试使用Workbox实施'cache then network'策略。

我已将Workbox设置为使用staleWhileRevalidate runtimeCaching处理程序,但我不确定如何更新网页一次/如果我们从网络更新了缓存。

文档说:

  

除了更新相应的缓存外,它还会触发底层RequestWrapper中定义的任何适当的插件。

这会有用吗?是否有任何使用Workbox完成此策略的示例(顺便说一句,这是一个很棒的工具,所以,谢谢你的维护者)?

1 个答案:

答案 0 :(得分:1)

在" standalone"中使用BroadcastCacheUpdate功能的示例时尚https://workbox-samples.glitch.me/examples/workbox-broadcast-cache-update/

要通过WorkboxSW的路由将其与staleWhileValidate一起使用,您可以执行以下操作:

workboxSW.router.registerRoute(
  new RegExp('/some/path/prefix'),
  workboxSW.strategies.staleWhileRevalidate({
    cacheName: 'my-cache',
    broadcastUpdate: {
      channelName: 'my-update-channel'
    },
  })
);

您可以在the docs中看到完整的示例。