Heim  >  Artikel  >  Web-Frontend  >  JavaScript-Analyse- und Komprimierungstool JavaScript Analyser_Javascript-Kenntnisse

JavaScript-Analyse- und Komprimierungstool JavaScript Analyser_Javascript-Kenntnisse

WBOY
WBOYOriginal
2016-05-16 16:22:351204Durchsuche

Der JSA-Komprimierungsprozess ist in zwei Schritte unterteilt

Der erste Schritt ist die Syntaxkomprimierung, die Dojo ShrinkSafe ähnelt, aber sicherer und effektiver ist.

Der zweite Schritt ist die Textkomprimierung, derzeit mit
Komprimierungsalgorithmus des JavaScript-Kompressors.
(http://dean.edwards.name/packer/ )

Diese können im Einstellungsfenster eingestellt werden.
Standardmäßig wird zuerst die Syntaxkomprimierung verwendet. Wenn die Datei größer als 1000 Byte ist und mithilfe der Textkomprimierung noch auf 90 % der Originalgröße komprimiert werden kann, wird die Textkomprimierung auf Originalbasis verwendet.

Das Folgende ist ein Skriptkomprimierungsbeispiel, um die Komprimierungs- und Optimierungsfunktionen der JSA-Syntax zu demonstrieren.

Code kopieren Der Code lautet wie folgt:

Versuchen Sie es mit {
//xxxx();
}
fangen (e) {
yyyy();
Funktion f1() {
}
}
endlich {
zzzz();
}
Funktion f2(var1) {
var var2 = 2;
var var3 = 3;
var withObject = {var2:-2}
with(withObject){
alarm(var2);
}
}

Komprimierte Ergebnisse (zum leichteren Nachschlagen formatiert):

Code kopieren Der Code lautet wie folgt:

zzzz();
Funktion f2(A) {
var var2 = 2;
var B = 3;
var C = {var2:-2}; mit (C) {
alarm(var2);
}
}

Vergleich des Komprimierungsverhältnisses mit anderen Komprimierungstools:

1. JavaScript-Kompressor (http://dean.edwards.name/packer/)

Am Beispiel seines eigenen Komprimierungstool-Codes (v2.02) beträgt die Größe nach der Packer-Komprimierung 7.428 Byte (Kommentare entfernt).
​ Und unser Komprimierungstool kann auf 7.256 Bytes komprimieren
7256 / 7428 = 0,9768443726440496
2.Dojo ShrinkSafe (raues Zeug, ineffizient und gefährlich, es wird Originalbenutzern empfohlen, es schnell zu ersetzen)
Am Beispiel seines eigenen Framework-Quellcodes (v0.4.1):
Seine eigene komprimierte Größe beträgt 149.518 Bytes, aber wir können sie nach der Komprimierung auf 81.261 Bytes reduzieren
81261 / 149518 = 0,5434864029748927

Sicherheitshinweise:

1.JavaScript-Kompressor

Textbasierte Komprimierung, ich habe mich nicht im Detail mit der Logik befasst, aber die Möglichkeit von Problemen mit dieser Art der Komprimierung ist sehr gering. Unser Komprimierungstool verwendet auch seinen Komprimierungsalgorithmus, der in JSI 1.1 a8 und verwendet wird

Beim Test der integrierten Klassenbibliothek eines Drittanbieters wurden keine Auffälligkeiten festgestellt. Darüber hinaus wird das bekannte Framework JQuery verwendet, sodass es meiner Meinung nach keine Probleme geben wird.

Zusätzlich (12.03.2007): Heute habe ich entdeckt, dass dieses Tool einen Fehler beim Parsen der JavaScript-Syntax für mehrzeilige Zeichenfolgen aufweist. Dieses Problem besteht jedoch nach der JSA-Syntaxkomprimierung nicht mehr.

2.Dojo ShrinkSafe Gefahr! ! ! ! !

Ersetzen Sie lange lokale Variablennamen durch kürzere Namen. Dies ist ein äußerst unsicheres Komprimierungstool. Zum Beispiel:

Code kopieren Der Code lautet wie folgt:
function(){
var withObject = {variable1:1}
var variable1 = 2;
with(withObject){
Warnung(Variable1);
}  
}

wird komprimiert in:

Code kopieren Der Code lautet wie folgt:
function(){
var _1={variable1:1}; var _2=2;
mit(_1){
alarm(_2);
}
}


Das ist offensichtlich falsch. Dieser Müll berücksichtigt keine spezielle Syntax und Dynamik von JavaScript. Die Auswertungsfunktion, die Catch-Operation und die With-Anweisung werden in keiner Weise verarbeitet.

Im Vergleich dazu ist JSA derzeit das sicherste und effektivste Komprimierungstool, das ich kenne.
JSA bietet nicht nur Codekomprimierungsfunktionen, sondern kann auch Formatierungen und Skriptanalysen durchführen.

Mit der Skriptanalysefunktion können Sie Skriptinformationen anzeigen und potenzielle Probleme im Skript finden.

Überprüfen Sie beispielsweise, welche Funktionen und Variablen im Skript deklariert sind.

Welche externen Variablen werden verwendet? usw. . .

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn