Nuestras aplicaciones web continúan creciendo en alcance, ambición y funcionalidad, lo cual es bueno. Sin embargo, la marcha implacable hacia una Web más enriquecida está generando otra tendencia: la cantidad de datos que descarga cada aplicación sigue aumentando a un ritmo constante. Para ofrecer un excelente rendimiento, debemos optimizar la entrega de cada byte.
¿Cómo se ve una aplicación web moderna? HTTP Archive puede ayudarnos a responder esta pregunta. El proyecto realiza un seguimiento de la forma en que se crea la Web rastreando periódicamente los sitios más populares (más de 300,000 de la lista del millón de elementos principales de Alexa) y registrando y agregando estadísticas sobre la cantidad de recursos, tipos de contenido y otros metadatos para cada destino individual.
Los datos anteriores capturan la tendencia de aumento en la cantidad de bytes descargados para destinos populares en la Web entre enero de 2013 y enero de 2014. Por supuesto, no todos los sitios crecen a la misma velocidad ni requieren la misma cantidad de datos, por eso destacamos los diferentes cuantiles dentro de la distribución: 50 (mediana), 75 y 90.
Un sitio promedio a principios de 2014 estaba compuesto por 75 solicitudes que suman 1,054 KB de bytes transferidos totales, y la cantidad total de bytes (y solicitudes) creció a un ritmo constante durante el año anterior. Esto por sí solo no debería sorprendernos, pero tiene implicaciones importantes en el rendimiento: sí, las velocidades de Internet son cada vez más rápidas, pero lo hacen a distintos ritmos en distintos países, y muchos usuarios aún están sujetos a límites de datos y planes medidos costosos, especialmente en dispositivos móviles.
A diferencia de sus equivalentes de escritorio, las aplicaciones web no requieren un proceso de instalación independiente: ingresa la URL y ya estamos listos. Esa es una función clave de la Web. Sin embargo, para que esto suceda, a menudo tenemos que recuperar decenas, y a veces cientos, de diversos recursos, todos los cuales pueden sumar megabytes de datos y deben reunirse en cientos de milisegundos para facilitar la experiencia web instantánea que buscamos.
Lograr una experiencia web instantánea a la luz de estos requisitos no es poca cosa, por lo que optimizar la eficiencia del contenido es fundamental: eliminar las descargas innecesarias, optimizar la codificación de transferencia de cada recurso a través de diversas técnicas de compresión y aprovechar el almacenamiento en caché siempre que sea posible para eliminar descargas redundantes.