ServiceWorkerGlobalScope: skipWaiting() 方法
注意:此功能仅在 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 的浏览器中加载。