Precarga con Service workers
Clase 12 de 23 • Curso de Rendimiento en Angular
Contenido del curso
Analizando el tamaño del Bundle
Aumenta la velocidad de navegación
- 6

Code splitting a nivel de rutas
06:15 min - 7

Implementando una propia estrategia de precarga
08:23 min - 8

Implementando QuicklinkStrategy
09:11 min - 9

Usando Machine Learning para predecir rutas
06:15 min - 10

Google Analytics y Angular
11:21 min - 11

Implementando GuessJs
13:13 min - 12

Precarga con Service workers
Viendo ahora - 13

¿Qué es Server Side Render?
03:35 min - 14

Implementando Angular Universal
09:23 min - 15

Cuidados con SSR y Angular
09:18 min
Rendimiento en tiempo de ejecución
Conclusiones
¿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
manifestque 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.