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

浏览器兼容性

另见