ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript 解析および圧縮ツール JavaScript Analyser_javascript スキル

JavaScript 解析および圧縮ツール JavaScript Analyser_javascript スキル

WBOY
WBOYオリジナル
2016-05-16 16:22:351204ブラウズ

JSA 圧縮プロセスは 2 つのステップに分かれています

最初のステップは構文圧縮です。これは Dojo ShrinkSafe に似ていますが、より安全で効果的です。

2 番目のステップはテキスト圧縮で、現在は
を使用しています。 JavaScript Compressor の圧縮アルゴリズム。
(http://dean.edwards.name/packer/)

これらは設定ウィンドウで設定できます。
デフォルトでは、ファイルが 1000 バイトを超え、テキスト圧縮を使用して元のサイズの 90% に圧縮できる場合は、最初にテキスト圧縮が使用されます。

以下は、JSA 構文の圧縮および最適化機能を示すスクリプト圧縮の例です。

コードをコピーします コードは次のとおりです:

{
を試してください //xxxx(); }
キャッチ (e) {
yyyy(); 関数 f1() {
}
}
最後に {
zzzz(); }
関数 f2(var1) {
var var2 = 2; var var3 = 3; var withObject = {var2:-2}
with(withObject){
アラート(var2); }
}



圧縮結果 (参照しやすいようにフォーマットされています):


コードをコピーします

コードは次のとおりです: zzzz(); 関数 f2(A) { var var2 = 2; var B = 3; var C = {var2:-2}; (C) { 付き アラート(var2); } }


他の圧縮ツールとの圧縮率の比較:

1. JavaScript コンプレッサー(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 および JSI 1.1 a8 で使用されている圧縮アルゴリズムを使用しています。
統合されたサードパーティのクラス ライブラリのテストでは異常は見つかりませんでした。また、有名なフレームワークであるJQueryを使用しているので問題ないと思います。

追加 (2007-03-12): 今日、JavaScript の複数行の文字列構文を解析するときに、このツールにバグがあることを発見しました。ただし、JSA 構文圧縮後は、この問題は発生しなくなります。

2.Dojo ShrinkSafe 危険! ! ! ! !

長いローカル変数名を短い名前に置き換えます。これは非常に安全でない圧縮ツールです。例:


コードをコピーします

コードは次のとおりです:

function(){

var withObject = {variable1:1}

var 変数 1 = 2; with(withObject){ アラート(変数1); } } は次のように圧縮されます:




コードをコピーします


コードは次のとおりです:
function(){

var _1={変数1:1}; var _2=2; with(_1){

アラート(_2); }

}

これは明らかに間違っています。このゴミは JavaScript の特殊な構文やダイナミクスに注意を払っていません。 eval 関数、catch 操作、with ステートメントはまったく処理されません。 それに比べて、JSA は現在、私が知る限り最も安全で効果的な圧縮ツールです。 JSAはコード圧縮機能を提供するだけでなく、フォーマットやスクリプト解析も行うことができます。
スクリプト分析機能を使用すると、スクリプト情報を表示し、スクリプト内の潜在的な問題を見つけることができます。
たとえば、スクリプト内で宣言されている関数と変数を確認します。
どの外部変数が使用されるか。等。 。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。