我尝试使用Workbox实施'cache then network'策略。
我已将Workbox设置为使用staleWhileRevalidate
runtimeCaching处理程序,但我不确定如何更新网页一次/如果我们从网络更新了缓存。
文档说:
除了更新相应的缓存外,它还会触发底层RequestWrapper中定义的任何适当的插件。
这会有用吗?是否有任何使用Workbox完成此策略的示例(顺便说一句,这是一个很棒的工具,所以,谢谢你的维护者)?
答案 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中看到完整的示例。