Contenido del curso
Antes de optimizar...
Crítical Rendering Path
- 7

Entendiendo el Critical Rendering Path en Navegadores Web
11:11 min - 8

Optimización de JavaScript para mejorar rendimiento web
10:53 min - 9

Priorización de recursos CSS para mejorar rendimiento web
11:50 min - 10

Optimización de Carga de Recursos con Preload, Prefetch y Preconnect
10:36 min - 11

Optimización de Animaciones CSS para Mejorar el Renderizado
02:35 min
CSS
WebFonts
Imágenes, Iconos y SVG
- 15

Optimización de Imágenes para Web: Formatos y Herramientas Efectivas
15:32 min - 16

Optimización de Imágenes para Web: Uso de Tamaños y Formatos Adecuados
05:20 min - 17

Comparación entre WebFonts y SVG: Ventajas y Desventajas
08:58 min - 18

Lazy Loading de Imágenes: Técnicas y Estrategias Efectivas
10:14 min - 19

Carga Adaptativa de Imágenes con Gatsby y Web API
Viendo ahora
Aplicaciones JavaScript
- 20

Optimización de JavaScript para Producción Web
11:20 min - 21

Análisis y Optimización de Bundles con Webpack
11:25 min - 22

Optimización de Bundles en Proyectos Web con Webpack
17:14 min - 23

Code Splitting con Webpack: Optimización de Bundles en Proyectos Web
06:31 min - 24

Lazy Loading de Videos con JavaScript y Modales
21:44 min - 25

Event Propagation y Filtrado de Eventos en JavaScript
17:24 min - 26

Integración de Librerías en Proyectos JavaScript
14:57 min - 27

Optimización de Carga de Modales con Lazy Loading en Webpack
13:24 min - 28

Renderizado en Cliente vs. Servidor: Diferencias y Funciones
08:44 min - 29

Implementación de Server Side Rendering en NodeJS
19:41 min - 30

Optimización de Sitios con Static Site Generation
15:51 min
Caché
- 31

Funcionamiento de Caché y Redes de Distribución de Contenido (CDN)
05:50 min - 32

Configuración y despliegue de sitios web con Netlify y Github Actions
09:03 min - 33

Automatización de despliegues con Github Actions y Cron en Netlify
09:25 min - 34

Implementación de Caché con Service Workers en JavaScript
14:04 min
Performance Budget
Conclusiones
Carga Adaptativa de Imágenes con Gatsby y Web API
Resumen
Optimizar imágenes no se limita a reducir su peso. Existe una técnica avanzada que adapta la calidad y resolución de cada imagen al dispositivo y la conexión del usuario, garantizando experiencias agradables sin importar las condiciones de acceso. Esta técnica se conoce como responsive loading y representa un salto significativo en la forma en que servimos recursos visuales.
¿Por qué una misma imagen genera experiencias diferentes?
Una imagen de trescientos kilobytes puede parecer ligera, pero el contexto de cada usuario cambia todo. Alguien con un dispositivo de gama alta y conexión 5G la cargará sin problema [0:06]. Sin embargo, un usuario con un dispositivo de gama baja y red 2G tendrá una experiencia completamente distinta. Ambos acceden al mismo sitio, pero la percepción de rendimiento es opuesta.
El objetivo es que el sitio web pueda brindar experiencias agradables a todos los usuarios, independientemente de su dispositivo o tipo de conexión. Aquí es donde el responsive loading cobra relevancia.
¿Cómo funciona el responsive loading con el elemento picture?
El responsive loading responde a la resolución de pantalla para entregar una imagen de menor o mayor calidad según corresponda [1:02]. Para entender su funcionamiento, se analiza cómo lo implementa Gatsby, un framework de React orientado a la generación de páginas estáticas.
Al inspeccionar el sitio gatsbyjs.org/showcase con las dev tools del navegador, se puede observar cómo se construye cada imagen [1:22]. La pieza fundamental es el elemento picture, que forma parte de la web API y trabaja en combinación con los elementos source e img.
¿Qué hace el elemento picture junto con source?
Esta combinación permite establecer diferentes URLs dependiendo del tamaño del navegador [1:36]:
- Una URL carga cuando el ancho es de 88 píxeles.
- Otra se activa cuando alcanza 175 píxeles.
- Una tercera entra en acción a los 350 píxeles.
- Y así sucesivamente con resoluciones mayores.
No solo se cargan imágenes diferentes, sino que cada una tiene una resolución adaptada al dispositivo del usuario [2:02]. Esto significa que un teléfono pequeño recibe una imagen liviana, mientras que una pantalla grande obtiene una versión de mayor calidad.
¿Es viable implementar responsive loading de forma manual?
Generar esta estructura para cada imagen de un sitio requiere mucho trabajo manual [2:14]. Cuando el proyecto contiene múltiples imágenes, hacerlo a mano deja de ser conveniente. Por eso, herramientas como Gatsby automatizan este proceso internamente.
¿Qué alternativas existen para optimizar imágenes responsivamente?
Además de Gatsby, servicios como Cloudinary resuelven de forma integral la optimización de imágenes [2:40]. Cloudinary se encarga de servir las imágenes adaptadas al dispositivo desde el que se conecta cada usuario, eliminando la necesidad de configurar manualmente el elemento picture y sus sources.
Existen muchos más servicios similares que vale la pena explorar. Los elementos clave para profundizar son:
- El elemento picture de la web API.
- El elemento source y su atributo de media queries.
- Servicios de optimización de imágenes como Cloudinary.
Dominar estas técnicas marca la diferencia entre un sitio que simplemente funciona y uno que respeta el contexto de cada usuario, ofreciendo rendimiento real en cualquier condición de red o dispositivo.