sabato 18 maggio 2013

Compressione codice HTML per aumentare la velocità di un sito?

La compressione del codice sorgente HTML delle pagine di un sito web può servire realmente alla riduzione dei tempi di caricamento?

In linea teorica sì: riducendo i caratteri che compongono una pagina si trasmettono meno dati e di conseguenza si riducono i tempi. In pratica non sempre è così. Se il web server utilizza la compressione dei dati con ad esempio gzip/deflate ecc, i benefici sono impercettibili, addirittura a volte una ottimizzazione preventiva del codice HTML potrebbe ridurre l'efficacia della compressione effettuata dal web server.

L'ottimizzazione, o meglio, compattazione, del codice HTML riduce gli spazi ridondanti, gli "a capo" ed altri eventuali caratteri che sono superflui nel rendering della pagina.

Solitamente questa operazione si svolge attraverso delle espressioni regolari (regexp) che pre-processano il codice. A questo proposito si deve quindi segnalare che l'attività di compattazione, ammesso che ciò non influisca negativamente sulla compressione, richiede un certo tempo e risorse per essere eseguita.

Pertanto conviene svolgere dei test per evitare di rallentare il tempo di caricamento delle pagine anziché velocizzarlo. Solitamente si cerca di non effettuare questo tipo di operazione a runtime ma si preferisce memorizzare il codice compattato in sistemi di caching.

Infine si deve prestare attenzione all'eventuale presenza di codice JavaScript inline che potrebbe essere influenzato dagli algoritmi di compattazione.

Anche il codice presente all'interno di blocchi pre-formattati potrebbe smettere di essere renderizzato correttamente.

In linea di massima la compattazione del codice HTML non va considerata come un intervento essenziale per ottimizzare le prestazioni di un sito web e va applicata stando attenti a tutti i possibili rischi.

Se si utilizza un CMS per la generazione del markup si può preferire di ottimizzare le funzioni di generale del codice agendo solo dove serve, perlomeno per una questione di eleganza :-)

In ogni caso per ridurre i tempi di caricamento delle pagine che compongono un sito web è consigliato intervenire per prima cosa nella compressione delle immagini, nell'ottimizzazione del codice JavaScript e CSS ed eventualmente introducendo sistemi di caching.