Ottimizzazione dell'efficacia dei contenuti

Ilya Grigorik
Ilya Grigorik

Le nostre applicazioni web continuano a crescere in termini di ambito, ambizione e funzionalità, il che è un bene. Tuttavia, l'incessante marcia verso un web più ricco sta alimentando un'altra tendenza: la quantità di dati scaricati da ogni applicazione continua ad aumentare a un ritmo costante. Per ottenere un rendimento eccezionale, dobbiamo ottimizzare l'invio di ogni singolo byte.

Che aspetto ha un'applicazione web moderna? HTTP Archive può aiutarci a rispondere a questa domanda. Il progetto monitora la costruzione del web eseguendo periodicamente la scansione dei siti più popolari (oltre 300.000 dall'elenco Alexa Top 1M) e registrando e aggregando dati e analisi sul numero di risorse, tipi di contenuti e altri metadati per ogni singola destinazione.

Tendenze di HTTP Archive

50° percentile 75° percentile 90° percentile
HTML 13 KB 26 KB 54 KB
Immagini 528 KB 1213 KB 2384 kB
JavaScript 207 KB 385 kB 587 kB
CSS 24 KB 53 kB 108 kB
Altro 282 kB 308 kB 353 kB
Totale 1054 KB 1985 KB 3486 KB

I dati riportati sopra illustrano la tendenza di crescita del numero di byte scaricati per le destinazioni più popolari sul web tra gennaio 2013 e gennaio 2014. Ovviamente, non tutti i siti crescono alla stessa velocità o richiedono la stessa quantità di dati, motivo per cui evidenzieremo i diversi quantili all'interno della distribuzione: 50° (media), 75° e 90°.

Un sito medio all'inizio del 2014 è composto da 75 richieste che aggiungono fino a 1054 KB di byte trasferiti totali e il numero totale di byte (e richieste) è cresciuto a un ritmo costante nell'anno precedente. Questo da solo non dovrebbe sorprendere, ma ha importanti implicazioni per le prestazioni: sì, le velocità di internet stanno aumentando, ma a velocità diverse nei diversi paesi e molti utenti sono ancora soggetti a limiti di dati e a piani con tariffe a consumo costosi, in particolare sui dispositivi mobili.

A differenza delle loro controparti desktop, le applicazioni web non richiedono una procedura di installazione separata: inserisci l'URL e il gioco è fatto. Questa è una funzionalità chiave del web. Tuttavia, per farlo spesso dobbiamo recuperare decine, a volte centinaia, di risorse diverse, che possono sommarsi a megabyte di dati e devono essere combinate in centinaia di millisecondi per facilitare l'esperienza web istantanea che miriamo a offrire.

Ottenere un'esperienza web istantanea alla luce di questi requisiti non è un'impresa facile, motivo per cui l'ottimizzazione dell'efficienza dei contenuti è fondamentale: eliminare i download non necessari, ottimizzare la codifica di trasferimento di ogni risorsa tramite varie tecniche di compressione e sfruttare la memorizzazione nella cache, se possibile, per eliminare i download ridondanti.