MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.

Это экспериментальная технология
Так как спецификация этой технологии ещё не стабилизировалась, смотрите таблицу совместимости по поводу использования в различных браузерах. Также заметьте, что синтаксис и поведение экспериментальной технологии может измениться в будущих версиях браузеров, вслед за изменениями спецификации.

register() метод ServiceWorkerContainer интерфейса который создает и обновляет ServiceWorkerRegistration  для указанного URL js скрипта.

Если удачно, service worker registration связывается по указанному URL js скрипта , который соответственно используется для проверки совпадения при навигации по URL. Если метод не возвращает ServiceWorkerRegistration, он возвращает Promise. Есть возможность вызвать этот метод без проверки на условие, т.е. нет необходимости сначала проверять существует ли активная регистрация в данный момент или нет.

Синтаксис

ServiceWorkerContainer.register(scriptURL, options)
  .then(function(ServiceWorkerRegistration) { ... });

Параметры

scriptURL
URL скрипта service worker - а.
options Необязательный
Опции это обьект  необходимый для регистрации service worker-a. В данный момент доступные опции:
  • scope: USVString представляет собой URL который определяет scope service worker - a; Какой диапазон URL может контролировать service worker. Это обычно относительный URL. Значение по умолчанию это URL  котрые соответствует корню т.е. './' используя дирректорию расположения js скрипта service worker -а как основу.

Возвращает

Promise который резолвится в ServiceWorkerRegistration обьект.

Пример использования

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 {
  // The current browser doesn't support service workers.
  var aElement = document.createElement('a');
  aElement.href = 'http://www.chromium.org/blink/serviceworker/service-worker-faq';
  aElement.textContent = 'unavailable';
  document.querySelector('#status').appendChild(aElement);
}

Спецификация

Спецификация Статус Комментарии
Service Workers
Определение 'ServiceWorkerContainer' в этой спецификации.
Рабочий черновик Первичное определение.

Браузерная совместимость

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Начальная поддержка 40.0 44.0 (44.0)[1] Нет 24 Нет
Feature Android Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
Начальная поддержка ? 44.0 (44.0) (Да) Нет ? Нет 40.0

[1] Использование Service worker ( и Push) приостановлено в Firefox 45 Extended Support Release (ESR.)

Метки документа и участники

 Внесли вклад в эту страницу: amutylo
 Обновлялась последний раз: amutylo,