--- title: ServiceWorkerContainer slug: Web/API/ServiceWorkerContainer translation_of: Web/API/ServiceWorkerContainer ---
{{SeeCompatTable}}{{APIRef("Service Workers API")}}
L’interface ServiceWorkerContainer
de l’API ServiceWorker fournit un objet représentant le service worker comme une unité globale de l’écosystème réseau, incluant des fonctionnalités pour enregistrer, désenregistrer et mettre à jour des services workers, et accéder à l’état des services workers et de leurs enregistrements.
Parmi le plus important, cette interface expose la méthode {{domxref("ServiceWorkerContainer.register", "ServiceWorkerContainer.register(scriptURL, scope[, base])")}} utilisée pour enregistrer les services workers, et la propriété {{domxref("ServiceWorkerContainer.controller")}} utilisée pour déterminer si oui ou non la page courante est activement conrôlée.
activated
(le même objet retourné par {{domxref("ServiceWorkerRegistration.active")}}). Cette propriété retourne null
si la requête est un rechargement forcé (Majuscule + rechargement) ou si il n'y a pas de worker actif.scriptURL
donné.Promise
. ServiceWorkerContainer
dans un tableau. Si la méthode ne peut retourner les {{domxref("ServiceWorkerRegistration")}}, elle retourne une Promise
. Cet extrait de code provient de exemple service worker fallback-response (voir fallback-response live). Le code test si le navigateur supporte les services workers. Alors le code enregistre le service worker et détermine si la page est activement contrôlée par le service worker. Si elle ne l’est pas, il invite l’utilisateur à recharger la page pour permettre au service worker de prendre le contrôle. Ce code indique aussi les échecs d’enregistrement.
if ('serviceWorker' in navigator) { navigator.serviceWorker.register('service-worker.js', {scope: './'}).then(function() { if (navigator.serviceWorker.controller) { document.querySelector('#status').textContent = 'The service worker is currently handling network operations.'; showRequestButtons(); } else { document.querySelector('#status').textContent = 'Please reload this page to allow the service worker to handle network operations.'; } }).catch(function(error) { document.querySelector('#status').textContent = error; }); } else { var aElement = document.createElement('a'); aElement.href = 'http://www.chromium.org/blink/serviceworker/service-worker-faq'; aElement.textContent = 'unavailable'; document.querySelector('#status').appendChild(aElement); }
Spécification | Status | Commentaires |
---|---|---|
{{SpecName('Service Workers', '#service-worker-container', 'ServiceWorkerContainer')}} | {{Spec2('Service Workers')}} | Définition initiale. |
{{Compat("api.ServiceWorkerContainer")}}