【问题标题】:How to delay revalidate call for workbox StaleWhileRevalidate strategy如何延迟工作箱 StaleWhileRevalidate 策略的重新验证调用
【发布时间】:2019-01-22 10:04:50
【问题描述】:

我们正在使用 workbox 为我们的 webApp 实现 ServiceWorker。 目前我们使用workbox.strategies.staleWhileRevalidate作为主页路由。

我们应用的网络使用模式是:主页、Javascript 资源、API 调用(按此顺序)。 Service Worker 会用陈旧的数据和 Javascript 资源和 API 数据来响应主页。

我们观察到主页的重新验证调用在从缓存提供请求后立即触发。因此,它无助于减少对网络资源的争用。有没有办法延迟使用 staleWhileRevalidate 策略的请求的重新验证调用?目标是在页面加载完成之前减少网络争用。

【问题讨论】:

    标签: workbox


    【解决方案1】:

    没有办法延迟重新验证。从理论上讲,我们可以添加对 Promise 包装的 setTimeout() 的调用,并确保将其包含在 event.waitUntil() 中以防止服务工作者同时终止,但老实说,这并没有提供不会发生争用的任何保证——它只是将争用推迟了一小段时间。

    我认为将来更简洁的方法是使用Priority Hints,并将重新验证请求明确标记为具有importance: 'low'。我已将该用例添加到 this issue 跟踪 Workbox 对优先级提示的一般使用情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-26
      • 2011-03-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-13
      • 1970-01-01
      • 2021-03-18
      • 2016-06-04
      相关资源
      最近更新 更多