ServiceWorkerGlobalScope: skipWaiting() 方法

Baseline 已廣泛支援

此功能已成熟,可跨多種裝置和瀏覽器版本工作。它自 ⁨2018 年 4 月⁩ 起已在所有瀏覽器中可用。

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

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

ServiceWorkerGlobalScope 介面的 skipWaiting() 方法強制等待中的 Service Worker 成為活動 Service Worker。

將此方法與 Clients.claim() 一起使用,以確保 Service Worker 的更新能立即生效,同時影響當前客戶端和所有其他活動客戶端。

語法

js
skipWaiting()

引數

無。

返回值

一個 Promise,在嘗試啟用新安裝的 Service Worker 後,以 undefined 解析。

示例

雖然 self.skipWaiting() 可以在 Service Worker 執行的任何時候被呼叫,但只有在新安裝的 Service Worker 可能保持 waiting 狀態時,它才會生效。因此,通常在 InstallEvent 處理程式中呼叫 self.skipWaiting()

下面的示例會使新安裝的 Service Worker 進入 activating 狀態,而不管是否已有活動 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

瀏覽器相容性

另見