ServiceWorker - Web APIs | MDN
Instance properties
The ServiceWorker interface inherits properties from its parent, EventTarget.
ServiceWorker.scriptURLRead only-
Returns the
ServiceWorkerserialized script URL defined as part ofServiceWorkerRegistration. The URL must be on the same origin as the document that registers theServiceWorker. ServiceWorker.stateRead only-
Returns the state of the service worker. It returns one of the following values:
parsed,installing,installed,activating,activated, orredundant.
Instance methods
The ServiceWorker interface inherits methods from its parent, EventTarget.
ServiceWorker.postMessage()-
Sends a message — consisting of any structured-cloneable JavaScript object — to the service worker. The message is transmitted to the service worker using a
messageevent on its global scope.
Events
statechange-
Fired when
ServiceWorker.statechanges. error-
Fired when an error happens inside the
ServiceWorkerobject.
Examples
This code snippet is from the service worker registration-events sample (live demo). The code listens for any change in the ServiceWorker.state and returns its value.
js
if ("serviceWorker" in navigator) {
navigator.serviceWorker
.register("service-worker.js", {
scope: "./",
})
.then((registration) => {
let serviceWorker;
if (registration.installing) {
serviceWorker = registration.installing;
document.querySelector("#kind").textContent = "installing";
} else if (registration.waiting) {
serviceWorker = registration.waiting;
document.querySelector("#kind").textContent = "waiting";
} else if (registration.active) {
serviceWorker = registration.active;
document.querySelector("#kind").textContent = "active";
}
if (serviceWorker) {
// logState(serviceWorker.state);
serviceWorker.addEventListener("statechange", (e) => {
// logState(e.target.state);
});
}
})
.catch((error) => {
// Something went wrong during registration. The service-worker.js file
// might be unavailable or contain a syntax error.
});
} else {
// The current browser doesn't support service workers.
// Perhaps it is too old or we are not in a Secure Context.
}
Specifications
| Specification |
|---|
| Service Workers Nightly # serviceworker-interface |