|
||
viernes mayo 6, 2022
Lograr que las páginas funcionen sin conexión a internet, guardando sus datos en la cache o memoria del navegador usando un service worker. Códigos y ejemplos prácticos.
![]() Explico en este artículo el uso elemental de Service Workers, para crear páginas que funcionen sin conexión a internet. Comparto el código necesario con ejemplos. ¿Qué es un Service Worker?Service Workers es una tecnología implementada en los navegadores modernos, tanto para escritorio o dispositivos móviles. Un "service worker" es un script que el navegador web ejecuta en segundo plano y hace posible diversas funcionalidades sin la interacción del usuario. Actualmente estas funcionalidades incluyen las Notificaciones Web Push (avisos que se reciben en el navegador o en Windows), Aplicaciones Web Progresivas (Progressive Web App) para Android y paginas creadas para funcionar sin conexión. Un ejemplo básico de una aplicación web offline, es https://squoosh.app/, sitio creado por Google para comprimir imágenes. Hacer que una página funcione sin conexión con Service WorkersEn la práctica Service Workers se puede implementar en una o varias páginas de un sitio, para lograr que pueda funcionar sin conexión a internet y de forma secundaria elevar su velocidad de carga. Para eso solo basta con especificar en el script del service worker, la lista de elementos que el navegador debe guardar la cache o memoria del navegador (Cache Storage). Pueden ser archivos HTML o estáticos (imágenes, CSS o scripts). Para lograr lo anterior son necesarios dos requisitos:
1- Un archivo que contiene el Service Worker, situado en el mismo directorio de la página o en el directorio raíz del sitio.
Para implementar esta tecnología en una o varias páginas, sigue los siguientes pasos.2- Enlazar una o varias páginas a dicho archivo. Crear una página offline con Service WorkersCrear el Service WorkerEl script con las instrucciones para implementar la función de Service Workers, es solo un archivo de texto plano con la extensión. JSPuede tener cualquier nombre. Usa el siguiente código.
En él se listan las páginas o archivos auxiliares que el navegador debe guardar en cache.Las paginas deben ser servidas en formato HTML, en PHP algunos navegadores no las muestran correctamente. En caso que solo se incluyan archivos HTML, estos se verán en el navegador sin ningún estilo, al cargar la página offline. Del mismo modo en caso que no se incluyan las imágenes de la página, estas no se verán. Todas las funciones del script están comentadas (líneas que comienzan con los caracteres //). Enlazar la página al archivo del Service WorkerIncluye en la parte inferior de la página, antes del cierre de la etiqueta </body> el siguiente código.
Especifica el nombre del script del Service Worker, llamado en este ejemplo: "worker.js"Eliminar o reemplazar la cache guardada en el navegadorLa página asi creada o modificada, funcionará usando la cache local, hasta que el usuario manualmente use la opción de borrar los datos guardados en su Configuración. Cada vez que se cargue dicha página estando conectamos a internet, el navegador revisa el archivo del Service Worker buscando algún cambio. Para que se elimine y reemplacen estos datos, necesitamos en el archivo del Service Worker, especificar otro nombre de cache. En este ejemplo, bastará con reemplazar "cache01" por "cache02", en las dos líneas donde aparece este dato. Probar el funcionamiento del Service Worker onlineDespués de subir la página modificada al servidor y el archivo auxiliar, cárgala en un navegador (PC o móvil), desconéctate de internet y vuelve a cargarla para comprobar su funcionamiento offline. Probar Service Worker offline en la computadoraServiceWorkers solo funciona mediante HTTPS, pero no es necesario subir las páginas a internet para probarlas. Podemos hacerlo desde la computadora, usando la aplicación de Google Chrome Web Server for Chrome Para eso después de instalar la aplicación e iniciarla, debemos de indicar el directorio donde se encuentran los archivos. ![]() A continuación solo necesitamos cargar en el navegador la siguiente dirección URL: http://127.0.0.1:8887/ Desde este momento podemos visualizar la página como si estuviera en internet y hacer las pruebas necesarias. Para eso podemos valernos de la Herramienta para Desarrolladores de Chrome (Control + Shift + J) en su sección Aplicación. Comprobar funcionamiento del Service Worker en la Consola de desarrolladores del navegador Google Chrome ![]() Ver a mayor tamaño Para comprobar cómo se ve realmente una página en un dispositivo sin conexión, en el panel Aplicación, en la barra lateral selecciona "Service Workers", marca la casilla "Offline" y recarga. Para comprobar su validez y los parámetros necesarios, también podemos emplear la extensión para Google Chrome "Lighthouse". Lighthouse es una herramienta de Auditoria, con la sección "Progressive Web App", creada para probar Aplicaciones Web Progresivas. Usos prácticos de Service Workers en un sitio webAcelerar y mejorar la velocidad de carga de las páginas con Service WorkersDespués de cargar por vez primera la página donde se incluya el Service Workers, en lo adelante el navegador usará los archivos guardados en cache que se le hayan indicado, sin tener que acceder a l servidor.Esto eleva considerablemente el tiempo de carga de dicha página y beneficia a ambos, lectores y propietarios del sitio, sin que se sacrifiquen recursos como la publicidad o el script que indica las visitas a dicha página. Uso de Service Workers en InfoUDOHe experimentado con los usos prácticos de Service Workers y lo he implementado en este sitio con dos objetivos.1- Facilitar a los lectores el funcionamiento de toda una sección, con información de sobre diversos temas, que resultan de mucha utilidad poder consultarlas sin conexión. La sección InfoUDO Móvil funciona como una verdadera Aplicación Web Progresiva. 2- Acelerar al máximo la velocidad de carga de la página principal de este sitio y otras auxiliares, permitiendo adicionalmente que los lectores puedan explorar su contenido sin conexión a internet. Crear una Aplicación Web Progresiva (Progressive Web App) para AndroidLas Web Apps que solo funcionan en dispositivos móviles con Android, usan el mismo sistema anterior, con otras instrucciones adicionales.Estas permiten que al cargar la página online, salte un cuadro que indique Agregar a la pantalla principal (Add to homescreen). Al presionar en el, la página con los archivos auxiliares es almacenada en cache y creado un acceso directo en la pantalla del dispositivo. Explico en otro artículo como crear una de ellas: Como crear una Aplicación Web Progresiva para móviles Uso en la práctica de las Aplicaciones Web Progresivas (PWA)
Las Aplicaciones Web Progresivas (PWA), además de ahorrarnos consumo de internet, nos evitan tener que instalar aplicaciones o programas en la computadora o en la Laptop de la forma tradicional. |
||
— @SergioAleman1
Comenta o lee lo que otros opinan |
||
COMPÁRTELO:Indica que te gusta y comparte |
||
![]() ![]() ![]() ![]() ![]() |
||
También te puede interesar: Páginas recientes sobre Windows, internet y la publicación web |
||
« Sergio Aleman en las redes sociales de internet | Cómo crear, usar y leer los códigos QR, generador gratis » |
||
![]() |
||
Buscador:
|
||
Síguenos en las redes sociales![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Mis cuentas socialesOtrasMóvil: (0426 683 6955 - 0412 8226575) - E-mail: [email protected] - [email protected] - WhatsApp: +58 (0426) 683.69.55 ![]() |
||
|
||
|