Новый работник против навигатора.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-интерфейсы), но не подключены к конкретному сеансу страницы и кратковременно работают в фоновом режиме в ответ на сетевые события на их связанном сайте.