効率的な JavaScript 分析および圧縮ツール JavaScript Analyzer を公開します
まず、JSA 構文の圧縮および最適化機能をデモンストレーションするために、スクリプト圧縮のサンプルが公開されます。
zzzz( );
}
関数 f2(var1) {
var var2 = 2;
var var3 = 3; with (withObject){
} }
}
圧縮結果 (参照しやすいようにフォーマットされています):
コードをコピー
コードは次のとおりです。
zzzz();
function f2(A) {
var var2 = 2;
var C = { var2:-2};
with (C) {
アラート(var2) }
}
JSA の圧縮プロセスは 2 つのステップに分かれています
最初のステップは構文圧縮で、Dojo ShrinkSafe に似ていますが、より安全で効果的です。
2 番目のステップはテキスト圧縮です。現在、
JavaScript Compressor の圧縮アルゴリズムが使用されています。
(http://dean.edwards.name/packer/ )
これらは設定ウィンドウで設定できます。
デフォルトでは、最初に構文圧縮が使用されます。ファイルが 1000 バイトを超えていても、テキスト圧縮を使用して元のサイズの 90% に圧縮できる場合は、元のベースでテキスト圧縮が使用されます。
他の圧縮ツールとの圧縮率の比較:
1. JavaScript Compressor(http://dean.edwards.name/packer/)
独自の圧縮との比較ツール コードを例に挙げます (v2.02)。パッカー圧縮後のサイズは 7,428 バイトです (コメントは削除されています)。
そして、私たちの圧縮ツールは 7,256 バイトまで圧縮できます
7256 / 7428 = 0.9768443726440496
2. Dojo ShrinkSafe (粗雑で非効率的で危険なので、元のユーザーはすぐに置き換えることをお勧めします)
例として独自のフレームワークのソース コード (v0.4.1):
彼自身の圧縮サイズは 149,518 バイトで、圧縮後は 81,261 バイトに削減できます
81261 / 149518 = 0.5434864029748927
セキュリティに関する説明:
1. JavaScript コンプレッサー
テキストベースの圧縮。ロジックを詳しく見ていませんが、この種の圧縮で問題が発生する可能性は非常に低く、当社の圧縮ツールでも使用されています。彼の圧縮アルゴリズムは、JSI 1.1 a8 とその統合されたサードパーティ ライブラリ
のテストで異常を示さなかった。また、有名なフレームワークであるJQueryを使用しているので問題ないと思います。
補足 (2007-03-12): 今日、JavaScript の複数行の文字列構文を分析するときに、これにバグがあることを発見しました。ただし、JSA 構文圧縮後は、この問題は発生しなくなります。
2. Dojo ShrinkSafe 危険! ! ! ! !
長いローカル変数名を置き換えるには短い名前を使用します。これは非常に安全でない圧縮ツールです。例:
javascript code
function(){
var withObject = {variable1:1}
var variable1 = 2;
with(withObject){
alert(variable1)
}
}
は圧縮されますinto:
function(){
var _1={variable1:1};
with(_1){
alert(_2); 🎜>}
これは明らかに間違っています。このゴミは、JavaScript の特殊な構文やダイナミクスに注意を払っていません。
eval 関数、catch オペレーション、with ステートメントでは処理は行われません。
それに比べて、JSA は私が知る限り最も安全で効果的な圧縮ツールです。
JSA はコード圧縮機能を提供するだけでなく、フォーマットやスクリプト分析も行うことができます。
スクリプト分析機能を使用すると、スクリプト情報を表示し、スクリプト内の潜在的な問題を見つけることができます。
たとえば、スクリプト内で宣言されている関数と変数を確認します。
これらの外部変数が使用されます。等。 。
ダウンロード アドレス:
http://sourceforge.net/project/showfiles.php?group_id=175776
または http: //forum.xidea.org
ファイルリスト