Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.
Это экспериментальная технология
Так как спецификация этой технологии ещё не стабилизировалась, смотрите таблицу совместимости по поводу использования в различных браузерах. Также заметьте, что синтаксис и поведение экспериментальной технологии может измениться в будущих версиях браузеров, вслед за изменениями спецификации.
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 = 'https://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.)