31

圧縮する前に縮小する正当な目的はありますか? 最初に圧縮された場合、gzip されたファイルが小さくなる可能性は非常に低いようです。

縮小されたコードで生産上の問題を診断することはかなり難しいので、私は尋ねます。

4

5 に答える 5

27

生のファイルサイズについては、サンプル(jQuery 1.4.2)を次に示します。

$ curl http://code.jquery.com/jquery-1.4.2.js | gzip > jquery.gz
$ curl http://code.jquery.com/jquery-1.4.2.min.js | gzip > jquery-min.gz

$ ls -la jquery*
-rw-r--r--  1 me  staff  24545 Apr  7 12:02 jquery-min.gz
-rw-r--r--  1 me  staff  45978 Apr  7 12:02 jquery.gz

したがって、縮小版は約半分のサイズです。

于 2010-04-07T04:04:38.740 に答える
22

はい、間違いなくメリットがあります。

縮小は非可逆圧縮ですが、gzip は可逆圧縮です。したがって、縮小すると不要なデータ (コメントや長い変数名など) が削除され、ファイルを小さくするのに常に役立ちます。gzip を使用しても、ほとんどの場合に違いがあります。

例:

function foo(this_is_my_variable){
    var this_is_my_other_variable = 0;
    this_is_my_other_variable = this_is_my_other_variable + this_is_my_variable;
    return this_is_my_other_variable;
}

それは次のように縮小される可能性があります。

function foo(a){
    var b = 0;
    b = b +a;
    return b;
}

または、ミニファイアがスマートな場合:

function foo(a){
    return a;
}

すべてのコードで同じ結果が得られますが、サイズは大きく異なります。

于 2010-04-07T03:51:35.403 に答える
3

また、ブラウザでのjavascriptコードの解析を高速化するのにも役立ちます。ファイルのサイズによっては、ブラウザがファイルの解析とトークン化にかなりの時間を費やす場合がありますが、これは縮小することで削減されます。

もちろん、ベンチマークとプロファイリングだけが、それが実際にあなたの特定の状況に利益をもたらすかどうかを教えてくれます。

私が最もうまく機能しているのは、すべての.jsファイルの縮小版と非縮小版の両方をWebサイトに保持し、構成スイッチを使用して2つを切り替えることです。そうすれば、通常の本番環境では縮小バージョンを使用できます。何かをデバッグする必要がある場合は、スイッチを切り替えるだけで、代わりに縮小されていないバージョンが提供されます。(もちろん、ビルドプロセスにより、縮小バージョンと非縮小バージョンが同期していることが保証されます)

于 2010-04-07T04:06:21.003 に答える
3

多分。空白の削除以外にも、JavaScript を縮小すると、同じテキストの繰り返しが増える可能性があります。これは、gzip での圧縮率がわずかに高くなる可能性があることを意味します。gzip幸いなことに、*nix で一般的でWindowsで使用できるコマンド ライン ツールは同じ圧縮アルゴリズムを使用するため、前後の処理を行うのは簡単です (ただし、まったく同じ形式ではありません)。

于 2010-04-07T03:52:16.963 に答える
1

gzip の前に縮小すると、最終的なバイト数が著しく減少するのを常に見てきました。

私は 20 分のハック ジョブ php スクリプトを持っています。このスクリプトは、yui コンプレッサーおよび googles クロージャー コンパイラーと連携します。gzip の後を含む前後のバイトが表示されるので、簡単に確認できます。

于 2010-04-07T03:58:41.953 に答える