Precarga con Service workers
Clase 12 de 23 • Curso de Rendimiento en Angular
Resumen
¿Cómo mejorar el rendimiento de una aplicación usando Service Workers?
Optimizar nuestras aplicaciones web es esencial para ofrecer una experiencia de usuario fluida y rápida. Una manera efectiva de lograr esto es convirtiendo nuestra aplicación en una aplicación web progresiva (PWA) mediante el uso de Service Workers. Estas técnicas involucran pre-carga y almacenamiento en caché de archivos, mejorando significativamente los tiempos de carga y funcionamiento.
¿Qué es un Service Worker?
Un Service Worker es un script que el navegador descarga y ejecuta en segundo plano, incluso sin conexión a internet. Su principal objetivo es manejar caché y hacer que las aplicaciones funcionen más rápido y sin interrupciones.
¿Cómo implementar un Service Worker en Angular?
La implementación de un Service Worker en Angular es sencilla y sigue pasos sistemáticos:
- Instalación: Usa el comando de Angular CLI para añadir soporte de Service Worker a tu proyecto. Asegúrate de especificar el nombre adecuado del proyecto.
ng add @angular/pwa --project nombreDelProyecto
- Configuración: Angular generará y actualizará varios archivos, incluyendo la configuración del Service Worker y un archivo
manifest
que define características de la aplicación como íconos y nombre. - Archivos caché: Define los archivos que deben precargarse y almacenarse en caché, asegurándote de que no se vuelva a solicitar al servidor estático.
¿Qué problemas pueden surgir durante la implementación?
Al intentar compilar una aplicación de producción con Service Workers, puede surgir un error debido a la duplicidad de archivos o referencias incorrectas en el app.module
. Es crucial revisar los módulos del proyecto y garantizar que las referencias sean correctas.
@NgModule({
declarations: [
// Componentes aquí
],
imports: [
// Otros módulos aquí
ServiceWorkerModule.register('ngsw-worker.js', {
enabled: environment.production,
registrationStrategy: 'registerWhenStable:30000'
})
],
// ...
})
export class AppModule { }
¿Cómo probar y depurar Service Workers en producción?
Una vez que la aplicación esté configurada para producción, es importante probarla en un ambiente similar al real. Utiliza un pequeño servidor HTTP para desplegarla y verifica que el Service Worker funcione correctamente.
- Usa herramientas de desarrollo en el navegador para revisar los recursos en caché y el manifiesto.
- Limpia manualmente el caché si ves que no se reflejan los cambios.
Beneficios y consideraciones de rendimiento
Implementar un Service Worker mejora la experiencia del usuario al:
- Reducir tiempos de carga: Los archivos almacenados localmente cargan mucho más rápido después de la primera visita.
- Optimizar peticiones: Almacenando en caché ciertas solicitudes, se evitan los tiempos de espera derivados de solicitudes al servidor.
Sin embargo, la primera carga puede ser más lenta debido a la precarga de recursos. En proyectos de gran escala, considera estrategias avanzadas, como carga diferida o segmentación de bundles.
Recursos adicionales
Para un entendimiento más profundo, te recomendamos revisar el curso Aplicaciones Web Progresivas en Platzi donde se exploran más a fondo las capacidades y personalizaciones de Service Workers para distintos tipos de aplicaciones.