2013-06-24 11 views
9

Come fa minification gestire $scope.obj.subObj = { key: val ...};Come funziona la minificazione e influisce sugli oggetti nidificati angolari?

da quanto ho capito l'ultimo a usare soggiorni variabili invariato,

ma se dovessi avere elemento HTML

<div>{{obj.subObj.key}}</div> 

sarebbe il risultato di minify abbreviare il codice di ad abckey? perdonami per aver chiesto dilettanti, ma sto cercando di capire come va la minifrazione di javascript.

+0

Un minifier decente non abbreviare le proprietà pubbliche utilizzate altrove. Quale stai usando? – Bergi

+0

Quale strumento usi per la minificazione? Alcuni strumenti comprimono le interfacce, altre no. Ad esempio, YUI Compressor non cambierà i nomi delle variabili globali e il loro contenuto: solo l'argomento della funzione e i nomi delle variabili locali saranno minimizzati. Puoi usarlo tranquillamente. –

risposta

9

Da: http://en.wikipedia.org/wiki/Minification_(programming)

Minification (anche minimizzazione o di minimizzazione), nei linguaggi di programmazione informatica e soprattutto JavaScript, è il processo di rimozione di tutti i caratteri non necessari dal codice sorgente, senza cambiare la sua funzionalità.

Quindi, se il minifier è in grado di rilevare che si può tranquillamente riscrivere $scope.obj.subObj-a.b.c lo farà.

Come regola generale però, qualsiasi variabile che è dall'ambito globale, come document, window o jQuery non sono ridotte perché altro codice (fuori del campo di applicazione di questo file) potrebbe dipendere da essa.

Il passaggio successivo da minifying sta utilizzando un compressore come il compilatore di chiusura di Google o il compressore YUI di Yahoo. Questi programmi sono tipicamente più potenti minifiers. Possono sostituire una chiamata di funzione con una funzione in linea, ad esempio, oppure modificare un determinato metodo con un metodo più breve o più veloce. Ciò richiede molte conoscenze su JavaScript e ottimizzazioni delle prestazioni.

È possibile alzare il tasso di compressione facendo cadere alcuni requisiti di compatibilità, ma ho trovato il codice risultante ad essere molto instabile, quindi non credo che siamo ancora lontani :)