[Global=(Worker,ServiceWorker), Exposed=ServiceWorker] interface ServiceWorkerGlobalScope : WorkerGlobalScope { [SameObject] readonly attribute Clients clients; [SameObject] readonly attribute ServiceWorkerRegistration registration; [SameObject] readonly attribute ServiceWorker serviceWorker; [NewObject] Promise<undefined> skipWaiting(); attribute EventHandler oninstall; attribute EventHandler onactivate; attribute EventHandler onfetch; attribute EventHandler onmessage; attribute EventHandler onmessageerror; };
Объект ServiceWorkerGlobalScope представляет глобальный контекст выполнения работника службы. У объекта ServiceWorkerGlobalScope есть связанный работник службы (service worker — работник службы). У объекта ServiceWorkerGlobalScope есть связанный кеш принудительного обхода для флага сценариев импорта (force bypass cache for import scripts flag). Он изначально не установлен.
Объект ServiceWorkerGlobalScope предоставляет общие, управляемые событиями, ограниченные по времени контексты выполнения скриптов, которые выполняются в источнике. После успешной регистрации, работник службы запускается, остаётся в живых и убивает своим отношением к событиям, а не к клиентам работника службы. Ни один тип синхронных запросов не должен инициироваться внутри работника службы.
4.1.1. Геттер clients
Шаги получателя клиентов clients должны вернуть связанный с этим this объект Clients.
4.1.2. Геттер registration
Шаги получателя registration должны вернуть результат получения объекта регистрации работника службы, представляющего работника службы, содержащего регистрацию работника службы этого this в соответствующем объекте настроек этого this.
4.1.3. Геттер serviceWorker
Шаги получателя serviceWorker должны вернуть результат получения объекта работника службы, который представляет работника службы этого this в соответствующем объекте настроек этого this.
4.1.4. Метод skipWaiting()
Метод skipWaiting() позволяет этому работнику службы переходить из положения ожидания регистрации в активное, даже когда клиенты работника службы используют регистрацию.
Шаги метода skipWaiting():
1. Пусть обещание promise станет новым обещанием. 2. Параллельно выполните следующие подшаги: 2.1 Установите флаг пропуска ожидания работника службы. 2.2 Вызвать Пробную Активацию (Try Activate) с помощью работника службы, содержащего регистрацию работника службы. 2.3 Разрешить promise с undefined. 3. Вернуть promise.
4.1.5. Обработчики событий ServiceWorkerGlobalScope
Ниже перечислены обработчики событий (и соответствующие им типы событий обработчиков событий), которые должны поддерживаться в качестве IDL-атрибутов обработчиков событий всеми объектами, реализующими интерфейс ServiceWorkerGlobalScope:
(event handler) | (event handler event type) |
---|---|
oninstall | install |
onactivate | activate |
onfetch | fetch |
onmessage | message |
onmessageerror | messageerror |
Информационные ссылки
Стандарт Service Workers Nightly — https://w3c.github.io/ServiceWorker/#serviceworkerglobalscope-interface