Blog

Ancora ottimizzazioni: comprimere i file JavaScript e CSS

webmaster: 24/04/09 @ 13:56
Questo weekend l'ho passato cercando di diminuire il peso dei file JavaScript e CSS.

La versione 2 di Minify sembra eccezionale. Per qualche motivo funziona perfettamente sul mio server locale, ma quando la uploado al server di produzione non funziona. Ho provato a fare troubleshooting per più di una settimana, ma alla fine ci ho rinunciato e ho deciso di apportare qualche modifica alla versione 1.

Già da tempo avevo cambiato l'algoritmo di compressione di Minify a un'implementazione in PHP del packer di Dean Edwards. I risultati sono stati ottimi fino ad ora, ma sapevo di poter fare di meglio. Ho quindi rimaneggato un po' il codice e ho aggiunto la funzione gzip trovata su php.net. I risultati sono stati eccezionali.

Prendiamo l'esempio di jQuery. Al naturale jQuery pesa 120,76KB, usando il packer di Dean Edwards arriviamo a 40,06KB, ma gzippando arriviamo addirittura a 19,77KB. Ho fatto un rapido calcolo che tra tutti i file JS e CSS, lo gzip ci risparmia circa 30KB a ogni download. Certo, il carico di lavoro è maggiore in termini di cicli CPU, ma la velocità di download è nettamente migliorata.

Per qualche motivo la compressione gzip all'interno delle pagine PHP sembra avere problemi. Non sono mai riuscito a riprodurre il problema, ma in vari mi hanno confermato il bug. L'unico codico che pare funzionare è il seguente inserito all'interno del file php.ini.
output_buffering = On
output_handler = ob_gzhandler
zlib.output_compression = Off


Per chi volesse approfondire questo argomento consiglio l'ottimo post sulla performance e il Yahoo User Interface Blog.

Commenti: 0


Lascia un commento

Insulti, volgarità e commenti ritenuti privi di valore verranno modificati e/o cancellati.
Nome:

Commento:
Conferma visiva: (ricarica)

Inserisci la targa della città indicata nell'immagine.

Login | Iscriviti

Username:

Password: