Ночные Работники Службы | Относительность происхождения

Ночные Работники Службы | Относительность происхождения

6.3.1. Ограничение происхождения

Этот раздел не является нормативным.

Работник службы выполняется в источнике регистрирующего клиента работника службы. Одна из сложных проблем, с которыми могут столкнуться основные приложения, заключается в том, могут ли они размещаться в сети CDN. По определению, это серверы в других местах, часто из других источников. Следовательно, работники службы не могут размещаться на CDN. Но они могут включать ресурсы через importScripts(). Причина этого ограничения заключается в том, что работники службы услуг создают для плохого человека возможность превратить плохой день в плохую вечность.

 

6.3.2. Метод importScripts(urls)

Когда для объекта ServiceWorkerGlobalScope вызывается метод importScripts(urls), пользовательский агент должен импортировать сценарии в глобальную область действия работника, учитывая этот объект ServiceWorkerGlobalScope и urls, а также следующие шаги для выполнения выборки с учетом запроса запроса request:

1. Пусть serviceWorker будет работником службы глобального объекта клиента запроса request.
2. Пусть map будет картой ресурсов скрипта serviceWorker.
3. Пусть url будет URL-адресом запроса request.
4. Если состояние serviceWorker не "parsed" или "installing":
  4.1 Вернуть map[url], если она существует, и ошибку сети в противном случае.
5. Если map[url] существует:
  5.1 Добавьте url в набор используемых скриптов serviceWorker.
  5.2 Вернуть map[url].
6. Пусть регистрация registration будет регистрацией, содержащей работника службы serviceWorker, .
7. Установите для режима работника службы запроса request значение "none".
8. Установите режим кеширования запроса request на "no-cache", если выполняется одно из следующих условий:

+ Обновление через режим кеширования регистрации registration  - "none".

+ Флаг принудительного обхода кэша для сценариев импорта, текущего глобального объекта установлен.

+ Регистрация registration устарела.

9. Пусть ответ response будет результатом выборки запроса request.
10. Если состояние кэша ответа response не является "local", установите время последней проверки обновления регистрации registration на текущее время.
11. Если небезопасный ответ response является ошибочным ответом сценария импорта, возвращается сетевая ошибка.
12. Задайте map[url] для ответа response.
13. Добавьте url в набор используемых скриптов serviceWorker.
14. Установите флаг импорта классических скриптов serviceWorker.
15. Верните ответ response.

 

Информационные ссылки

Стандарт Service Workers Nightlyhttps://w3c.github.io/ServiceWorker/#origin-relativity