ServiceWorkerGlobalScope: skipWaiting() 方法

安全上下文:此功能仅在 安全上下文 (HTTPS) 中可用,在部分或全部 支持的浏览器 中可用。

注意:此功能仅在 Service Workers 中可用。

skipWaiting() 方法是 ServiceWorkerGlobalScope 接口的方法,它强制等待中的 Service Worker 成为活动 Service Worker。

将此方法与 Clients.claim() 结合使用,以确保对基础 Service Worker 的更新对当前客户端和所有其他活动客户端立即生效。

语法

js
skipWaiting()

参数

无。

返回值

一个 Promise,在尝试激活新安装的 Service Worker 后,该 Promise 将解析为 undefined

示例

虽然 self.skipWaiting() 可以 Service Worker 执行过程中的任何时间点调用,但只有在新安装的 Service Worker 可能会处于 等待 状态时,它才会产生效果。因此,通常在 InstallEvent 处理程序内部调用 self.skipWaiting()

以下示例使新安装的 Service Worker 进入 激活 状态,无论是否已存在活动 Service Worker。

js
self.addEventListener("install", (event) => {
  // The promise that skipWaiting() returns can be safely ignored.
  self.skipWaiting();

  // Perform any other actions required for your
  // service worker to install, potentially inside
  // of event.waitUntil();
});

规范

规范
Service Workers
# service-worker-global-scope-skipwaiting

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅