Lo segundo más importante es el Service Worker. Primero que nada, mi aplicación es una aplicación JavaScript, por lo que hay mucha lógica de aplicación escrita en JavaScript, lo cual es genial porque realmente me gusta JavaScript. Pero nuevamente, tan pronto como cerramos el sitio, tan pronto como cerramos el navegador, simplemente, JavaScript está muerto. Ya no hay cosas sucediendo dentro de nuestro app.js, por lo que ya no podemos interactuar con él. El Service Worker también es un fragmento de JavaScript, pero vive en un ámbito separado. Se registra entre la aplicación web y el navegador, y allí puede escuchar eventos, interactuar con el sitio, incluso si el navegador está cerrado, por lo que permanece allí para siempre. No está vinculado al ciclo de vida de nuestra aplicación. Para registrar el Service Worker, podemos llamar a esta función navigator.serviceworker.register, que apunta al Service Worker. Tiene algunos parámetros opcionales como el ámbito, por lo que en nuestro caso, nuestro Service Worker controla todo, nuestro sitio y todas las subcarpetas también. También podemos crear un nuevo Service Worker que controle ámbitos específicos dentro de nuestra aplicación, por lo que podríamos tener el Service Worker de Acerca de que solo controle todo dentro de esta carpeta de Acerca de, por ejemplo. Y luego, dentro del Service Worker, es solo JavaScript. Tenemos escuchadores de eventos, por lo que cada vez que alguien visita la página, se dispara este evento de Instalación. Luego, una vez que ocurrió la instalación, tenemos el evento de Activación. Luego, cada solicitud pasa por el Service Worker con el evento de Obtención, y también si alguien intenta alcanzar nuestro Service Worker desde algún servidor, por ejemplo, tenemos el evento de Envío al que podemos escuchar. Hasta ahora, todo bien. Pero volvamos a nuestra súper aplicación web y sus superpoderes. Comencemos con el problema número uno, la Súper Aplicación Web y el sueño de la independencia de la red. Es un hermoso día, el sol brilla, nuestra súper aplicación web intenta solicitar algunos recursos del servidor, hace una solicitud al servidor, regresa con la respuesta, todo está bien. Pero de repente, la conexión a Internet se ha ido. Lo siento, ahí vamos. Diferente. La conexión a Internet se ha ido, y bueno, Donasaurio aparece, muerte segura para todas las aplicaciones web clásicas. No es así para nuestra súper aplicación web, porque tenemos el superpoder del Service Worker. Ahora el Service Worker se encuentra entre el sitio web y la Internet, y también puede interactuar con el almacenamiento de la aplicación. Entonces, incluso si se pierde la conexión a Internet, todavía tenemos una fuente confiable para atender nuestras solicitudes. ¿Cómo podemos usarlo? En este caso, tenemos nuestro SVG, tenemos una imagen de respaldo SVG y queremos mostrar el respaldo SVG cuando falla una solicitud de una imagen SVG. En primer lugar, en el evento de instalación, abrimos la caché, luego colocamos este respaldo SVG en la caché. Luego, una vez que tenemos el evento de obtención, primero verificamos si el recurso solicitado es realmente un SVG. Si ese es el caso, tenemos event.responseWith, que básicamente se hace cargo de la solicitud. Allí podemos pasar la solicitud al servidor.
Comments