向服务人员发送消息以跳过等待

时间:2019-10-24 19:56:17

标签: javascript service-worker

您如何向服务人员发送消息以跳过等待?服务工作者是使用以下处理程序定义的

self.addEventListener('message', (event) => {
  if (event.data && event.data.type === 'SKIP_WAITING') {
    self.skipWaiting();
  }
});

谢谢, 路易斯

1 个答案:

答案 0 :(得分:0)

这是我在一个项目中如何做的一个例子。

navigator.serviceWorker
  .register(swUrl)
  .then(registration => {
    this.registration = registration;
    config.onRegistration();

    registration.onupdatefound = () => {
      const installingWorker = registration.installing;
      if (installingWorker == null) {
        return;
      }
      config.onUpdateFound();
      installingWorker.onstatechange = () => {
        if (installingWorker.state === 'installed') {
          if (navigator.serviceWorker.controller) {
            registration.waiting.postMessage('skipWaiting');
            config.onUpdateInstalled();
          }
        } else if (installingWorker.state === 'activated') {
          config.onActivated();
        }
      };
    };
  })
相关问题