Experimental
Dies ist eine experimentelle Technologie
Da diese Technologie noch nicht definitiv implementiert wurde, sollte die Browserkompatibilität beachtet werden. Es ist auch möglich, dass die Syntax in einer späteren Spezifikation noch geändert wird.
Die register()
Methode der ServiceWorkerContainer
Schnittstelle erstellt oder aktualisiert eine ServiceWorkerRegistration
für die gegebene scriptURL
.
Nach erfolgreicher Registrierung verwendet die Service Worker Registrierung die übergebene scriptURL
und ihren Bereich für den Navigationsabgleich. Die Methode gibt ein Promise
zurück, welches zu einer ServiceWorkerRegistration
aufgelöst wird. Die Funktion kann bedingungslos aufgerufen werden - Es muss vorher nicht kontrolliert werden, ob eine aktive Registrierung vorhanden ist.
Es entstehen häufig Verwirrungen über die Bedeutung und Verwendung des scope
. Da ein ServiceWorker keinen größeren Bereich abdecken kann als seinen einen Pfad, sollte man den Parameter nur verwenden, wenn man einen kleineren Bereich als den Standardbereich abdecken will.
Syntax
ServiceWorkerContainer.register(scriptURL, options).then(function(ServiceWorkerRegistration) {
// Do something with ServiceWorkerRegistration.
});
Parameter
scriptURL
- Die Url des Service Workers Scripts.
options
Optional
- Ein Object, welches verschiedene Registrierungsoptionen beinhaltet. Zur Zeit stehen folgende Optionen zur Verfügung:
scope
: EinUSVString
, welcher eine URL darstellt, die zur Festlegung des Bereiches des Service Workers verwendet wird. Dies ist normalerweise eine relative URL. Der Standardwert ist die URL, die man bekommen würde, wenn man './' mit dem Pfad des Service Worker Scripts verwenden würde.
Rückgabewert
Ein Promise
, welches zu einem ServiceWorkerRegistration
Objekt aufgelöst wird.
Beispiele
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('service-worker.js', {scope: './'}).then(function(registration) {
document.querySelector('#status').textContent = 'succeeded';
}).catch(function(error) {
document.querySelector('#status').textContent = error;
});
} else {
// Der verwendete Browser unterstützt Service Worker nicht.
var aElement = document.createElement('a');
aElement.href = 'http://www.chromium.org/blink/serviceworker/service-worker-faq';
aElement.textContent = 'unavailable';
document.querySelector('#status').appendChild(aElement);
}
Spezifikationen
Spezifikation | Status | Kommentar |
---|---|---|
Service Workers Die Definition von 'ServiceWorkerContainer' in dieser Spezifikation. |
Arbeitsentwurf | Initiale Definition. |
Browserkompatiblität
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Basic support | 40.0 | 44.0 (44.0) | Nicht unterstützt | 24 | Nicht unterstützt |
Feature | Android | Firefox Mobile (Gecko) | Firefox OS | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|
Basic support | ? | 44.0 (44.0) | (Ja) | Nicht unterstützt | ? | Nicht unterstützt | 40.0 |