ServiceWorkerGlobalScope: install 事件

Baseline 已廣泛支援

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

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

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

ServiceWorkerGlobalScope 介面的 install 事件在 ServiceWorkerRegistration 獲得一個新的 ServiceWorkerRegistration.installing worker 時觸發。

此事件不可取消,也不會冒泡。

語法

在諸如 addEventListener() 之類的方法中使用事件名稱,或設定事件處理程式屬性。

js
addEventListener("install", (event) => { })

oninstall = (event) => { }

事件型別

一個 ExtendableEvent。繼承自 Event

Event ExtendableEvent

事件屬性

沒有實現任何特定的屬性,但繼承了其父級 Event 的屬性。

示例

以下程式碼片段展示瞭如何使用 install 事件處理程式,使用一組響應來填充快取,然後 service worker 可以使用這些響應來離線提供資源。

js
self.addEventListener("install", (event) => {
  event.waitUntil(
    caches
      .open("v1")
      .then((cache) =>
        cache.addAll([
          "/",
          "/index.html",
          "/style.css",
          "/app.js",
          "/image-list.js",
          "/star-wars-logo.jpg",
          "/gallery/",
          "/gallery/bountyHunters.jpg",
          "/gallery/myLittleVader.jpg",
          "/gallery/snowTroopers.jpg",
        ]),
      ),
  );
});

您也可以使用 oninstall 屬性來設定事件處理程式。

js
self.oninstall = (event) => {
  // …
};

規範

規範
Service Workers
# dom-serviceworkerglobalscope-oninstall

瀏覽器相容性

另見