Новый работник против навигатора.serviceWorker

В чем разница между new Worker() а также navigator.serviceWorker.register()?

var myWorker = new Worker('service-worker.js', {});

Они оба просто создают один и тот же вид работника сферы услуг?

navigator.serviceWorker.register('service-worker.js').then(()=>{})

Пожалуйста, не отрицайте, у меня есть 50+ вкладок, открытых на несколько дней, связанных с работниками сферы обслуживания, я чувствую себя подавленным и отчаянным, все это не имеет особого смысла для меня независимо от (или, возможно, в результате) большого количества доступной документации.

1 ответ

Решение

Они не то же самое.

new Worker() создает веб-работника. Это отдельный поток и контекст выполнения, но он все еще привязан к текущему сеансу страницы и будет прерван, когда пользователь уйдет со страницы.

Сервисные работники работают в среде, аналогичной веб-рабочим (они используют некоторые API-интерфейсы), но не подключены к конкретному сеансу страницы и кратковременно работают в фоновом режиме в ответ на сетевые события на их связанном сайте.

Другие вопросы по тегам