与服务工作者定期发出HTTP请求

时间:2018-01-31 08:54:51

标签: service-worker

当用户没有访问我的网页时,是否可以在后台向服务工作者发出HTTP请求。我想定期向我的网页发送请求(例如3秒)?

有一项名为 periodicSync 的功能,但我不明白如何使用它。

1 个答案:

答案 0 :(得分:1)

我没有尝试过这个,但对我来说,最清晰的概述是explanation

定期请求涉及首先处理Service Worker ready事件,并使用config选项调用periodicSync.register()函数。 register()函数返回一个Promise,允许您处理定期同步注册的成功或拒绝。

registration.periodicSync.register()

传递'config'对象参数,其中包含以下属性:

  • 标签
  • minPeriod
  • 电源状态
  • networkState

然后,您可以针对periodicSync事件注册听众。例如(基于explanation的略微简化示例。

self.addEventListener('periodicsync', function(event) {
  if (event.registration.tag == 'my-tag') {
    event.waitUntil(doTheWork()); // "do the work" asynchronously via a Promise.
  }
  else {
    // unknown sync, may be old, best to unregister
    event.registration.unregister();
  }
});