Когда я впервые услышал об этих терминах, я подумал: ладно, они делают то же самое в отдельной ветке. Тогда зачем нам нужны эти два термина?
Но, честно говоря, существуют огромные различия между этими двумя терминами и их поведением.
Постараюсь объяснить подробно.
Между этими двумя есть точки соприкосновения
Веб-работник
Сотрудник службы
Жизненный цикл сервисного работника
1. Регистрация
if ('serviceWorker' in navigator) { // wrap it in try/catch / promisses await navigator.serviceWorker.register('/service-worker.js') }
2. Установка
код ниже, который нам нужно написать в service-worker.js
self.addEventListener('install', (event) => { // do your operations })
3. Активация
self.addEventListener('activate', (event) => { // Do your Operation })
4. Праздный
5. получить/сообщение
self.addEventListener('fetch', (event) => { // Do your Opeation })
6. Прекращение действия
Это сохранит сервисных работников на очень долгое время.
Пример:-
в Chrome Откройте эту ссылку, и вы увидите множество зависающих сервисных работников, и вы сможете делать множество вещей, например, проверять/запускать и отправлять сообщения.
chrome://serviceworker-internals/
Как мы можем разбудить работников службы, даже если браузер закрыт.
Примечание:-
В этом конкретном случае мы можем использовать push для пробуждения, но для этого использования необходимо предоставить браузеру разрешение на уведомление, иначе нет никакого способа.
Другие способы актуальны, когда браузер все еще открыт
1. получить событие
self.addEventListener('fetch', event => { // Handle fetch event });
2. Сообщение
self.addEventListener('message', (event) => { // Handle message Event })
3. Толкать
self.addEventListener('push', (event) => { // Handle Push Event })
4. Синхронизировать событие
self.addEventListener('sync', (event) => { // handle background Sync Event })
Ссылка
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3