具有StaleWhileRevalidate的Workbox服务工作者

时间:2018-10-17 08:21:33

标签: javascript service-worker progressive-web-apps workbox workbox-webpack-plugin

我在使用'workbox.strategies.staleWhileRevalidate'时遇到问题,我没有得到带有响应的更新数据。有什么办法可以使用此策略针对每个请求更新数据?我也使用广播更新来检查标头,但是当我使用其他终端登录时,它会显示旧数据。我希望我的indexdb应该随着每个请求进行更新,并按照更新后的响应显示dom。

workbox.routing.registerRoute(
  new RegExp('xy/xyzAPI/api'),
  workbox.strategies.staleWhileRevalidate({
    cacheName: 'api-url',
    plugins: [
      new workbox.expiration.Plugin({
        maxEntries: 20,
        maxAgeSeconds: 24 * 60 * 60
      }),
      new workbox.broadcastUpdate.Plugin('api-url', {
        headersToCheck: ['date'],
      })
    ]
  }));

1 个答案:

答案 0 :(得分:0)

在插件中,请删除或减少工作盒到期

workbox.routing.registerRoute(
  new RegExp('xy/xyzAPI/api'),
  workbox.strategies.staleWhileRevalidate({
    cacheName: 'api-url',
    plugins: [
      new workbox.expiration.Plugin({
        maxEntries: 20,

      }),
      new workbox.broadcastUpdate.Plugin('api-url', {
        headersToCheck: ['date'],
      })
    ]
  }));