ServiceWorker

Die ServiceWorker-Schnittstelle der Service Worker-API stellt einen Verweis auf einen Serviceworker bereit. Mehrere "Glossary"-Glossar-("Browsing-Kontexte", "Browsing-Kontexte") (z. B. .pages, Arbeitskräfte usw.) können demselben Service-Worker zugeordnet werden, jeder durch ein eindeutiges Objekt.ServiceWorker

Ein Objekt ist in der Eigenschaft ""ServiceWorkerRegistration.active"" und in der Eigenschaft ""ServiceWorkerContainer.controller"" verfügbar – dies ist ein Service-Worker, der aktiviert wurde und die Seite steuert (der Service-Worker wurde erfolgreich registriert, und die gesteuerte Seite wurde neu geladen).)ServiceWorker

Die Schnittstelle wird eine Reihe von Lebenszyklusereignissen – und – und funktionalen Ereignissen einschließlich ausgelöst. Einem Objekt ist ein Objekt zugeordnet, dem der Lebenszyklus von "ServiceWorker.state") zugeordnet ist.ServiceWorkerinstallactivatefetchServiceWorker

Properties

The ServiceWorker interface inherits properties from its parent, Worker.

ServiceWorker.scriptURL (en-US) Schreibgeschützt
Returns the serialized script URL defined as part of ServiceWorkerRegistration (en-US). The URL must be on the same origin as the document that registers the .ServiceWorkerServiceWorker
ServiceWorker.state (en-US) Schreibgeschützt
Returns the state of the service worker. It returns one of the following values: , , , or .installinginstalled,activatingactivatedredundant

Event handlers

ServiceWorker.onstatechange (en-US) Schreibgeschützt
An EventListener property called whenever an event of type is fired; it is basically fired anytime the ServiceWorker.state (en-US) changes.statechange

Methods

The ServiceWorker interface inherits methods from its parent, Worker, with the exception of Worker.terminate (en-US) — this should not be accessible from service workers.

Examples

This code snippet is from the service worker registration-events sample (live demo). The code listens for any change in the ServiceWorker.state (en-US) and returns its value.

if ('serviceWorker' in navigator) {
    navigator.serviceWorker.register('service-worker.js', {
        scope: './'
    }).then(function (registration) {
        var 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', function (e) {
                // logState(e.target.state);
            });
        }
    }).catch (function (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.
}

Specifications

Specification Status Comment
Service Workers
Die Definition von 'ServiceWorker' in dieser Spezifikation.
Arbeitsentwurf Initial definition.

Browser compatibility

BCD tables only load in the browser

See also