ServiceWorkerGlobalScope: activate event
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2018.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Note: This feature is only available in Service Workers.
The activate event of the ServiceWorkerGlobalScope interface is fired when a ServiceWorkerRegistration acquires a new ServiceWorkerRegistration.active worker.
This event is not cancelable and does not bubble.
Syntax
Use the event name in methods like addEventListener(), or set an event handler property.
addEventListener("activate", (event) => { })
onactivate = (event) => { }
Event type
An ExtendableEvent. Inherits from Event.
Examples
The following snippet shows how you could use an activate event handler to upgrade a cache.
self.addEventListener("activate", (event) => {
const cacheAllowlist = ["v2"];
event.waitUntil(
caches.keys().then((cacheNames) =>
Promise.all(
cacheNames.map((cacheName) => {
if (!cacheAllowlist.includes(cacheName)) {
return caches.delete(cacheName);
}
return undefined;
}),
),
),
);
});
You can also set up the event handler using the onactivate property:
self.onactivate = (event) => {
// …
};
Specifications
| Specification |
|---|
| Service Workers Nightly> # service-worker-global-scope-activate-event> |
| Service Workers Nightly> # dom-serviceworkerglobalscope-onactivate> |