Der Komprimierungsprozess von JSA ist in zwei Schritte unterteilt
Der erste Schritt ist die Syntaxkomprimierung, ähnlich wie bei Dojo Shringensafe, aber sicherer als es und effizienter.
Der zweite Schritt ist derzeit die Textkomprimierung
JavaScript -Kompressor -Komprimierungsalgorithmus.
(http://dean.edwards.name/packer/)
Diese können im Einstellungsfenster eingestellt werden.
Standardmäßig wird zuerst die Syntaxkomprimierung verwendet. Die Textkomprimierung wird ursprünglich verwendet, wenn die Datei größer als 1000 byte ist und die Textkomprimierung weiterhin auf 90% der ursprünglichen Größe komprimiert werden kann.
Hier ist ein Beispiel für Skriptkomprimierung, um JSA -Syntaxkomprimierungsfunktionen und Optimierungsfunktionen anzuzeigen.
Die Codekopie lautet wie folgt:
versuchen {
// xxxx ();
}
fangen (e) {
yjyy ();
Funktion f1 () {
}
}
Endlich {
zzzz ();
}
Funktion f2 (var1) {
var var2 = 2;
var var3 = 3;
var withObject = {var2: -2}
mit (withObject) {
Alarm (var2);
}
}
Komprimierte Ergebnisse (formatiert für einfachen Zugriff):
Die Codekopie lautet wie folgt:
zzzz ();
Funktion f2 (a) {
var var2 = 2;
var b = 3;
var c = {var2: -2};
mit (c) {
Alarm (var2);
}
}
Vergleich mit anderen Komprimierungswerkzeugen für Komprimierungsverhältnisse:
1. JavaScript Compressor (http://dean.edwards.name/packer/)
Mit seinem eigenen Komprimierungswerkzeugcode als Beispiel (v2.02) Packer mit Größe 7.428 Bytes komprimiert (Kommentare entfernen).
Und unser Komprimierungswerkzeug kann auf 7.256 Bytes komprimiert werden
7256 /7428 = 0,9768443726440496
2.Dojo Shrymbymsafe (grobe Dinge sind sowohl ineffizient als auch gefährlich. Es wird empfohlen, dass der ursprüngliche Benutzer es so bald wie möglich ändert)
Mit seinem eigenen Framework -Quellcode als Beispiel (v0.4.1):
Es komprimiert die Größe auf 149.518 Bytes selbst, und wir können sie nach der Komprimierung auf 81.261 Bytes verkleinern
81261 /149518 = 0,5434864029748927
Sicherheitsanweisungen:
1. JavaScript -Kompressor
Basierend auf der Textkomprimierung habe ich die Logik darin nicht sorgfältig betrachtet, aber die Möglichkeit dieses Komprimierungsproblems ist sehr niedrig. Unser Komprimierungswerkzeug verwendet auch seinen Komprimierungsalgorithmus in JSI 1.1 A8 und
Im Test seiner integrierten Bibliothek von Drittanbietern wurde keine Ausnahme gefunden. Und es gibt auch ein bekanntes Rahmen JQuery, also glaube ich, dass es kein Problem geben wird.
Supplement (2007-03-12): Heute habe ich festgestellt, dass dieses Ding bei der Analyse der JavaScript-Multi-Line-String-Syntax einen Fehler hat. Dieses Problem wird jedoch nicht mehr bestehen, nachdem sie durch die JSA -Syntax komprimiert wurde.
2.Dojo Shrymbymsafe gefährlich! ! ! ! !
Ersetzen Sie den langen lokalen Variablennamen durch einen kürzeren Namen, der beispielsweise ein äußerst unsicheres Komprimierungswerkzeug ist:
Die Codekopie lautet wie folgt:
Funktion(){
var withObject = {variable1: 1}
var variable1 = 2;
mit (withObject) {
alarm (variable1);
}
}
Komprimieren zu:
Die Codekopie lautet wie folgt:
Funktion(){
var _1 = {variable1: 1};
var _2 = 2;
mit (_1) {
alert (_2);
}
}
Dies ist offensichtlich falsch, dieser Müll achtet nicht auf eine spezielle Syntax und die Dynamik von JavaScript.
Für Bewertungsfunktionen, Fangvorgänge und Aussagen erfolgt keine Verarbeitung.
Im Gegensatz dazu ist JSA das sicherste und effektivste Kompressionsinstrument, das ich derzeit kenne.
JSA bietet nicht nur Codekomprimierungsfunktionen, sondern kann auch zur Formatierung und Skriptanalyse verwendet werden.
Die Skriptanalyse kann verwendet werden, um Skriptinformationen anzuzeigen und potenzielle Probleme in Skripten zu finden.
Überprüfen Sie beispielsweise die im Skript deklarierten Funktionen und Variablen.
Diese externen Variablen wurden verwendet. usw. . .