この質問は、対象の理論面ではもう少しであることを意図していますが、空白を取り除く以外に、JavaScript Compressionには他のテクニックが使用されていますか?JavaScript圧縮ライブラリはファイルサイズを最小限に抑えるためにどのようなテクニックを使用しますか?
答えて
コンプレッサーのほとんどは、異なる技術を組み合わせて使用します。
- ストリッピング空白 圧縮algorythmによって
- 圧縮ファイル(gzipで、収縮させる)
- は、スペースのほとんどは、例えば短い名前の変数や関数interall名前変更保存されます:
この関数:
function func (variable) {
var temp = 2 * variable;
return temp;
}
になるだろう:
function func (a) {
var b = 2 * a;
return b;
}
- ディーンエドワーズpackerは、いくつかの内部の圧縮を使用しています。スクリプトは、ページにロードされると解凍されます。
- programmcodeを短くするためにすべての通常のもの:そのGZIP圧縮機は、より良い結果を持っていますので、
- は
- 関数のインライン展開
私はGoogleのWeb Toolkitをコンパイラ内で発見されているいくつかの名前を付けることができます方法の
- インライン呼び出し
- デッドコード削除
- 変数の名前変更/ソースの難読化、これは書き換え意味
- を短い変数などの長い変数
ほとんどすべてがJavascriptの解析が必要です(つまり、純粋な字句解析を超えて機能します)。私の頭の上オフ
デッドコードの一部が私をおびえさせること、どのようにGWTのコードは時に死んでいることを知っているんJSにはグローバルスコープがありますか?または、GWTはすべてのJSを一度にコンパイルするように設計されていて、複数のJSファイルのうちの1つだけで実行すると動作しません。 –
GWTはモノリシックコンパイラなので、java内でできることにいくつかの制限を加えることで、メソッドが呼び出されたかどうかを正確に判断できます(Eclipse IDEでできることに似ています)。 –
...
- は、ローカル変数をトークン化して、最小限のサイズの変数にそれらの名前を変更します。
- 大量の空白を削除します。
- 不必要な中括弧を削除します(たとえば、if-statementsが中カッコを削除して1つのセミコロンを追加した後の1行の実行など)。
- 不要なセミコロンを削除します(たとえば、終了ブレース '}'の直前など)。
私の最も一般的に使用されるminifierがYUI Compressorで、as they stateあなたは彼らが正確に何で自分のために見てみることができますので、それはオープンソースです。 (私はあなたに文字または2を獲得するまれな例はおそらくたくさん、「ミクロの最適化」によって、彼らが何を意味するかわからない。)
コードの名前変更や並べ替えを未使用のコードを削除します。例えば
(それほど巧妙でない)
元のコード:
function mul(mul1, mul2)
{
return mul1 * mul2;
}
function print(str)
{
// do something
}
function add(add1, add2)
{
return add1 + add2;
}
は、コードを変更:
function mul(a,b)
{
return a * b;
}
function add(a, b)
{
return a + b;
}
function print(str)
{
// do something
}
- 1. プログラムを最小限に抑えるように強制する
- 2. 他のアプリケーションを最小限に抑えるためのバッチファイル
- 3. サーバーサイドのコーディングを最小限に抑えるように最適化されたWebスタックはありますか?
- 4. アンドロイド用のスカラーアプリケーションは、どのようにファイルサイズを縮小できますか?
- 5. ADO.NET DataSetのメモリフットプリントを最小限に抑えますか?
- 6. Internet Explorerはページの負荷を最小限に抑えます
- 7. Microsoft Solver FoundationのInteriorPointSolverはどのような機能を最小限に抑えますか?
- 8. JavaScriptを最小限に抑えて状態を最大化する方法
- 9. アレイのアクセス数を最小限に抑えるには
- 10. JQueryのUIタブを最小限に抑えるにはどうしたらいいですか?
- 11. クラウドロックインのリスクを最小限に抑えるためのアーキテクチャ戦略?
- 12. 7-zipを使用したバッチ:最小のファイルを最大のファイルに圧縮
- 13. 誤読/ミスタイプ/ミスピークを最小限に抑えるエンコーディングですか?
- 14. Common Lisp(SBCL)でのメモリ使用量に対処し、最小限に抑える
- 15. TLBフラッシュを最小限に抑えるためにオペレーティングシステムがどれくらい難しいですか?
- 16. どのように最小化またはコアデータsqliteファイルのサイズを圧縮しますか?
- 17. 従属変数のstの偏差を最小限に抑えるための適切な方法(クラスタリングなど)
- 18. VC6のデバッグチェックを最小限に抑えるためにデバッグDLLを最適化するにはどうすればよいですか?
- 19. イメージを圧縮してファイルサイズを小さくする
- 20. Android用のキーコードはソフトキーボードのボタンを最小限に抑えます
- 21. Ajaxレスポンス?どのようにしてゲームの中でAJAXリクエストを最小限に抑えるか
- 22. iPadアプリケーションをプログラムで最小限に抑える方法は?
- 23. アンドロイドでアプリケーション全体を最小限に抑える方法は?
- 24. Goでガベージコレクションを最小限に抑える方法は?
- 25. Javaの "ウォームアップ"時間を最小限に抑える手法またはユーティリティ?
- 26. アプリケーションを最小限に抑えた起動プログラム
- 27. zlibのgzipファイルアクセス関数を使用した非圧縮ファイルサイズ
- 28. どのようにAndroidのphonegapのビデオプレーヤーのサイズを最小限に抑えるには?
- 29. ffmpegでライブストリーミングの遅延を最小限に抑える方法
- 30. 私のSQLクエリを最小限に抑える方法
になるでしょう:function f(a){return 2 * a;};)72文字から27まで –
グローバルなjavascriptスコープでfuncを使用したい場合は、そのまま名前を残します。;-) – TheHippo