Комментарии 3
После этого браузер, запустивший установку сервис-воркера, переходит в фоновый режим:
???
О, опять вылез на эту статью через google!
А что, меня одного смущает, что "браузер переходит в фоновый режим"? С какого перепуга ему уходить в фон? Запустил процесс установки и пошагал дальше в своём обычном темпе. Поставьте вывод на консоль перед и после запуска регистрации service worker'а и убедитесь сами:
window.addEventListener('load', () => {
// регистрируем сервис-воркер
console.log("Before registration");
navigator.serviceWorker
.register('/service-worker.js')
.then(registration => {
// регистрация прошла успешно
console.log(`Сервис-воркер успешно зарегистрирован, scope: ${registration.scope}`) // scope - подмножество контента, которое находится под контролем сервис-воркера
})
.catch(error => {
// регистрация провалилась
console.log(`В процессе регистрация возникла ошибка: ${error}`)
});
console.log("After registration");
});
вот вывод на консоль:
index.html:8 Сервис-воркер поддерживается
index.html:13 Before registration
index.html:24 After registration
service-worker.js:8 Сервис-воркер установлен
index.html:18 Сервис-воркер успешно зарегистрирован, scope: https://some.host.com/
service-worker.js:13 Сообщение от сервис-воркера: файлы кешируются
Посмотрел оригинал:
Once done, the browser that starts the service worker installation steps into the background.
Не знаю, что хотел сказать оригинальный автор этим, но браузер ни в какой background не переходит. Основной поток отпочковал отдельный поток для service worker'а, в браузере получилось два потока. Я поставил точки останова в скрипте вызова регистрации service worker'а (в index.html
) и в самом service worker'е:
self.addEventListener("install", e => {
console.log("Сервис-воркер установлен")
debugger;
e.waitUntil(
...
и оба потока независимо оттормозились:
Что у нас в фон ушло-то?
Once done, the browser that starts the service worker installation steps into the background.
Походу, дошло, что хотел сказать автор оригинала: "… steps it into the background". Процесс инсталляции service worker'а уходит в фон. Не браузер уходит в фон, а service worker. В этом уже есть какой-то смысл.
Визуализация работы сервис-воркеров