ServiceWorkerGlobalScope:activate 事件

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

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

ServiceWorkerRegistration获取新的ServiceWorkerRegistration.active工作线程时,ServiceWorkerGlobalScope接口的activate事件会被触发。

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

语法

在诸如addEventListener()之类的的方法中使用事件名称,或设置事件处理程序属性。

js
addEventListener("activate", (event) => {});

onactivate = (event) => {};

事件类型

事件属性

不实现任何特定属性,但继承其父级Event的属性。

示例

以下代码片段显示了如何使用activate事件处理程序来升级缓存。

js
self.addEventListener("activate", (event) => {
  const cacheAllowlist = ["v2"];

  event.waitUntil(
    caches.forEach((cache, cacheName) => {
      if (!cacheAllowlist.includes(cacheName)) {
        return caches.delete(cacheName);
      }
    }),
  );
});

您还可以使用onactivate属性设置事件处理程序

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

规范

规范
Service Workers
# service-worker-global-scope-activate-event
Service Workers
# dom-serviceworkerglobalscope-onactivate

浏览器兼容性

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

另请参阅