Cuando escuché por primera vez sobre estos términos pensé, está bien, están haciendo las mismas cosas con su hilo separado. Entonces, ¿por qué necesitamos estos 2 términos?
Pero a decir verdad, existen enormes diferencias entre estos 2 términos y cómo se comportan.
Intentaré explicarlo en detalle.
El punto en común entre estos 2 es
Trabajador web
Trabajador de servicio
Ciclo de vida del trabajador de servicio
1. Registro
if ('serviceWorker' in navigator) { // wrap it in try/catch / promisses await navigator.serviceWorker.register('/service-worker.js') }
2. Instalación
el siguiente código debemos escribirlo en service-worker.js
self.addEventListener('install', (event) => { // do your operations })
3. Activación
self.addEventListener('activate', (event) => { // Do your Operation })
4. Inactivo
5. buscar/Mensaje
self.addEventListener('fetch', (event) => { // Do your Opeation })
6. Terminación
Mantendrá a los trabajadores del servicio durante mucho tiempo.
Ejemplo:-
en Chrome Abra este enlace, verá muchos trabajadores de servicio colgados y podrá hacer muchas cosas como inspeccionar/iniciar y enviar un mensaje.
chrome://serviceworker-internals/
Cómo podemos reactivar a los trabajadores del servicio incluso si el navegador está cerrado.
Nota:-
Para este caso específico podemos usar push para activarnos, pero para este uso debemos otorgar permiso de notificación al navegador, de lo contrario no hay manera.
Otras formas son relevantes cuando el navegador aún está abierto
1. buscar evento
self.addEventListener('fetch', event => { // Handle fetch event });
2. Mensaje
self.addEventListener('message', (event) => { // Handle message Event })
3. Empujar
self.addEventListener('push', (event) => { // Handle Push Event })
4. Evento de sincronización
self.addEventListener('sync', (event) => { // handle background Sync Event })
Referencia
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3