Matt Snider ha scritto sul suo blog un interessante articolo in cui espone alcuni consigli utili ad ottimizzare la compressione dei file Javascript. Quello di comprimere i file Javascript è un compito comune, ma occorre eseguirlo nel migliore dei modi. Ecco dunque i consigli di Matt.
Usare meno "var"
Come sappiamo, per dichiarare una variabile occorre usare la keyword var, ma per gruppi di variabili, è consigliabile usarla una sola volta e raggruppare una lista di nomi:
// tante var var v1 = 1; var v2 = {}; var v3 = function() { // function code }; // una var var v1 = 1, v2 = {}, v3 = function() { // function code };
Usare shortuct pointers per i namespace prolissi
Perché ripetere sempre lo stesso namespace quando possiamo avvalerci dei puntatoti locali, il cui namespace è completamente sotto il nostro controllo? Questo migliora di molto l'esito della compressione:
function() { MyLib.Utilities.Events.add('el1', 'click' function() {/* function code */}); MyLib.Utilities.Events.add('el2', 'click' function() {/* function code */}); MyLib.Utilities.Events.add('el3', 'click' function() {/* function code */}); }()); // shortcut pointer (function() { var evts = MyLib.Utilities.Events; evts.add('el1', 'click' function() {/* function code */}); evts.add('el2', 'click' function() {/* function code */}); evts.add('el3', 'click' function() {/* function code */}); }());
Concatenare i file prima della compressione
Una buona regola è inoltre quella di concatenare i file in un unico file prima di eseguire la compressione. Questo permette di riutilizzare i namespace più corti scelti in precedenza dal compressore, senza la necessità di usarne di nuovi nel caso di nuove variabili globali (i compressoreinon hanno la capacità di ricordare le informazioni tra più file).
Variabili al posto di oggetti
Quest'ultima regola è molto soggettiva: se da un lato ottimizza la compressione, dall'altro può incidere notevolmente sulla qualità del nostro codice. Essa si traduce nell'utilizzare le semplici variabili al posto delle proprietà degli oggetti: questo perchè molti compressori non sono attualmente in grado di ridurre e dunque rinominare le proprietà degli oggetti.
Queste le regole di Matt Snider per ottimizzare le nostre compressioni. Qualcuno ha qualche altro suggerimento?