2013-06-24 6 views
9

Wie funktioniert minification $scope.obj.subObj = { key: val ...};Wie funktioniert die Minification und beeinflusst sie angular verschachtelte Objekte?

von handhaben, was verstehe ich die letzte unverändert Variable bleibt zu verwenden,

aber wenn ich html-Element

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

wäre das Ergebnis minify verkürzen, den Code haben abchecken? Verzeihen Sie mir für die Frage Amateur, aber ich versuche zu verstehen, wie Javascript Minification geht.

+0

Ein ordentliches minifier nicht Verkürzen Sie öffentliche Eigenschaften, die an anderer Stelle verwendet werden. Welchen benutzen Sie? – Bergi

+0

Welches Werkzeug verwendest du zur Verkleinerung? Einige Tools komprimieren die Schnittstellen, manche nicht. Zum Beispiel wird YUI Compressor die Namen der globalen Variablen und deren Inhalte nicht ändern - nur Funktionsargument und lokale Variablennamen werden minimiert. Sie können es sicher verwenden. –

Antwort

9

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

Minifizierung (Minimierung oder Minimierung auch), in Computer-Programmiersprachen und insbesondere JavaScript ist der Prozess alle unnötigen Zeichen aus dem Quellcode zu entfernen, ohne seine Funktionalität zu ändern.

Also, wenn die minifier ist in der Lage zu erkennen, dass es sicher $scope.obj.subObj-a.b.c umschreiben kann, es wird. obwohl

Als Faustregel gilt: jede Variable, die aus dem globalen Bereich ist, wie document, window oder jQuery nicht minimierte werden, weil anderer Code (außerhalb des Umfangs dieser Datei) könnte davon abhängen.

Der nächste Schritt von der Minimierung ist die Verwendung eines Kompressors wie Google Closure Compiler oder Yahoo YUI Compressor. Diese Programme sind in der Regel stärkere Minifier. Sie können beispielsweise einen Funktionsaufruf durch eine Inline-Funktion ersetzen oder eine bestimmte Methode durch eine kürzere oder schnellere Methode ändern. Dies erfordert viel Wissen über JavaScript und Leistungsoptimierungen.

Sie können die Komprimierungsrate durch Fallenlassen bestimmte Kompatibilitätsanforderungen aufdrehen, aber ich habe den resultierenden Code gefunden sehr instabil zu sein, so sind Ich glaube nicht, dass wir ganz da noch :)