2016-06-09 4 views
0

Чтобы инициализировать Service Worker один должен включать в THEAD <head> что-то вроде:Должен ли загружаться сценарий рабочего рабочего?

<script> 
if ('serviceWorker' in navigator) { 
    navigator.serviceWorker.register('/my-sw.js'); 
} 
</script> 

я обнаружил, что в некоторых примерах страниц это не первый сценарий (например flipkart.com) страницы. Разве это не первый, так что можно использовать предварительное кэширование и другие функции как можно скорее? Действительно ли этот порядок имеет значение для этого скрипта, и он может быть в нижней части страницы за пределами </head>?

ответ

1

Registering a service worker will cause the browser to start the service worker install step in the background. В случае успеха service worker выполнен в ServiceWorkerGlobalScope; это в основном особый вид рабочего контекста, отключающий поток выполнения основного сценария, без доступа DOM.

Будучи конкретным с вашим вопросом, порядок регистрации работника сервисного персонала не имеет значения. После установки сервисного работника пользователь переходит на другую страницу или обновляется, работник службы начнет получать fetch events.

+0

Это интересно. Интересно, как это работает при обновлении, как обычно, если один байт этого скрипта изменится, он будет повторно установлен. Итак, как это можно объяснить тем, что этот скрипт живет уже до загрузки страницы, поэтому прежде чем он даже узнает, удалила ли страница или изменила путь к этому 'service-worker.js'. – Wernight

Смежные вопросы