Una introducción a los trabajadores de servicio de JavaScript

Una introducción a los trabajadores de servicio de JavaScript

¿Alguna vez te has preguntado cómo algunos sitios web parecen seguir funcionando incluso cuando no estás conectado? El secreto es simple: estos sitios web tienen trabajadores de servicio.





Los trabajadores de servicios son la tecnología clave detrás de muchas de las funciones similares a las aplicaciones nativas de las aplicaciones web modernas.





cómo usar snapchat en el wifi de la escuela sin vpn

¿Qué son los trabajadores de servicios?

Los trabajadores de servicios son un tipo especializado de Trabajadores web de JavaScript . Un service worker es un archivo JavaScript que funciona un poco como un servidor proxy. Captura las solicitudes de red salientes de su aplicación, lo que le permite crear respuestas personalizadas. Podría, por ejemplo, entregar archivos almacenados en caché al usuario cuando no esté conectado.





Los trabajadores de servicio también le permiten agregar funciones como sincronización en segundo plano a sus aplicaciones web.

¿Por qué trabajadores de servicios?

Los desarrolladores web llevan mucho tiempo intentando ampliar las capacidades de sus aplicaciones. Antes de que aparecieran los trabajadores de servicio, podía usar varias soluciones para que esto fuera posible. Uno particularmente notable fue AppCache, que hizo que los recursos de almacenamiento en caché fueran convenientes. Desafortunadamente, tenía problemas que la convertían en una solución poco práctica para la mayoría de las aplicaciones.



AppCache parecía ser una buena idea porque le permitía especificar activos para almacenar en caché con mucha facilidad. Sin embargo, hizo muchas suposiciones sobre lo que estaba tratando de hacer y luego se rompió horriblemente cuando su aplicación no siguió exactamente esas suposiciones. Lea el de Jake Archibald (desafortunadamente titulado pero bien escrito) La caché de aplicaciones es una idiota para más detalles. (Fuente: MDN )

Los trabajadores de servicios son el intento actual de reducir las limitaciones de las aplicaciones web, sin los inconvenientes de tecnología como AppCache.





Casos de uso para trabajadores de servicios

Entonces, ¿qué te dejan hacer exactamente los trabajadores de servicios? Los trabajadores de servicio le permiten agregar características que son características de las aplicaciones nativas a su aplicación web. También pueden proporcionar una experiencia normal en dispositivos que no admiten trabajadores de servicio. Las aplicaciones como esta a veces se llaman Aplicaciones web progresivas (PWA) .

Estas son algunas de las características que hacen posibles los trabajadores de servicio:





  • Permitir que el usuario siga usando la aplicación (o al menos partes de ella) cuando ya no esté conectado a Internet. Los trabajadores de servicios logran esto sirviendo activos almacenados en caché en respuesta a solicitudes.
  • En los navegadores basados ​​en Chromium, un trabajador de servicio es uno de los requisitos para que una aplicación web se pueda instalar.
  • Los trabajadores de servicio son necesarios para que su aplicación web pueda implementar notificaciones automáticas.

El ciclo de vida de un trabajador de servicio

Los trabajadores del servicio pueden controlar las solicitudes de un sitio completo o solo de una parte de las páginas del sitio. Una página web en particular solo puede tener un trabajador de servicio activo y todos los trabajadores de servicio tienen un ciclo de vida basado en eventos. El ciclo de vida de un trabajador de servicio generalmente se ve así:

cómo desactivar las discusiones relacionadas en Facebook
  1. Alta y descarga del trabajador. La vida de un service worker comienza cuando un archivo JavaScript lo registra. Si el registro es exitoso, el trabajador del servicio se descarga y luego comienza a ejecutarse dentro de un hilo especial.
  2. Cuando se carga una página controlada por el trabajador del servicio, el trabajador del servicio recibe un evento de 'instalación'. Este es siempre el primer evento que recibe un trabajador del servicio y puede configurar un oyente para este evento dentro del trabajador. El evento 'instalar' generalmente se usa para obtener y/o almacenar en caché los recursos que necesita el trabajador del servicio.
  3. Una vez que el trabajador del servicio finaliza la instalación, recibe un evento de 'activación'. Este evento permite que el trabajador limpie los recursos redundantes utilizados por los trabajadores de servicio anteriores. Si está actualizando un trabajador de servicio, el evento de activación solo se activará cuando sea seguro hacerlo. Esto es una vez que no hay páginas cargadas que aún usen la versión anterior del trabajador del servicio.
  4. Después de eso, el trabajador del servicio tiene el control total de todas las páginas que se cargaron después de que se registraron con éxito.
  5. La última fase del ciclo de vida es la redundancia, que ocurre cuando el service worker se elimina o se reemplaza por una versión más nueva.

Cómo usar trabajadores de servicio en JavaScript

La API del trabajador de servicio ( MDN ) proporciona la interfaz que le permite crear e interactuar con trabajadores de servicio en JavaScript.