【问题标题】:Workbox service worker with StaleWhileRevalidate具有 StaleWhileRevalidate 的 Workbox 服务工作者
【发布时间】:2025-11-26 20:50:01
【问题描述】:

我在使用“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'],
      })
    ]
  }));

【问题讨论】:

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


    【解决方案1】:

    在插件中请删除或减少工作箱过期

    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'],
          })
        ]
      }));
    

    【讨论】:

    • 这没有帮助。它没有更新缓存
    最近更新 更多