12

Yahoo! _ UI CompressorDean Edwards Packer、およびjsmin。これらは、結果として得られるフットプリントと難読化時のエラーの削減の両方の点で、より良い結果をもたらします。

4

8 に答える 8

11

最良のコンプレッサーを比較する優れた方法は、Arthur Blake によるJavaScript CompressorRaterです。

通常関心があるのは、GZIP で圧縮した後のサイズです (圧縮を実行するように Web サーバーを構成する必要があります)。

通常、最良の結果は、YUI CompressorまたはDojo ShrinkSafeからのものです。違いは非常に小さかったので、しばらくして比較をやめ、YUI Compressor だけを使用しました。

編集: この質問が最初に行われたときから、2 つの新しいミニファイアーがリリースされました。どちらも通常、YUI Compressor よりも優れていない場合でも、少なくとも同じくらい優れています。

編集2:

  • 公式の 1.5 リリースのために jQuery チームによって選択されたUglifyJS
于 2008-12-11T21:26:40.090 に答える
3

考慮すべき複数の要因があるため(リストしたものを超えても)、ここでは少し主観的です。

  1. 圧縮されたサイズがすべてを物語るわけではありません。積極的なコンプレッサーを使用すると、ブラウザーが解釈する前にコードのアンパックを実行するための追加の時間が必要になるため、実行時のパフォーマンスが低下する可能性があるためです。
    • エラーは、入力コードを制御するときに回避するのが最も簡単です。セミコロンを適切に使用することは大いに役立ちます。コードに対して JSLint を実行し、報告された問題を修正します。
    • もちろん、コード自体のスタイルとサイズは結果に影響します。
    • 最後に、一部のコード圧縮ツールは gzip とより効果的に組み合わせることができますが、サーバー側の gzip 圧縮は常にコード圧縮よりもダウンロードが小さくなることに注意してください。

私のお勧めは、圧縮するコードを複数のコンプレッサーで実行し ( CompressorRaterなどの自動比較ツールが役立ちます...)、結果に基づいて選択することです。後で実際のページ読み込み時間をテスト、プロファイリング、比較することを忘れないでください。

于 2008-12-11T20:59:25.463 に答える
2

完全な開示、私はこれの背後にあります: http://www.toptensoftware.com/minimeこれは、縮小、難読化、および合理的なリント スタイル チェックのセットを行います。現在、Yui よりも出力が小さく、Closure ほどではありません。

于 2010-08-25T14:36:06.140 に答える
2

ぜひ Dojo Shrinksafeをチェックしてください。最近作り直され、明らかにパフォーマンスが改善されました。

于 2008-12-11T22:17:30.597 に答える
1

これは古い質問であり、当時Google Closure Compilerは存在しませんでした。まだ使っていませんが、とても良さそうです。

于 2010-05-29T09:10:53.273 に答える
0

Codeplex には、.NET 用の YUICompress のポート(TFS 用のビルド タスクを含む) もあります。

于 2009-01-14T02:11:03.753 に答える
0

Mootools のユーザーとして、Mootools が Dean Edwards の Packer を YUI Compressor に置き換えたことに気づきました。また、Ajaxian.com で、Julien (Compressor の作成者) が YUI Compressor の優れた点を指摘した議論があったことも覚えています。私は Compressor を使用していて問題は見たことがありませんが、難読化するときにどちらがより少ないエラーを生成するかを調べたことはありません。

于 2008-12-11T20:56:00.697 に答える
0

YUI Compressor は、Packer よりも安全かつコンパクトに圧縮します。私は、Packer が JavaScript を完全に形成する必要があると考えています。そうしないと、スクリプトがロードされたときに JavaScript エラーが発生します。それでも、どちらを使用しても、ファイルを Gzip することで最大のパフォーマンス向上が得られます。

于 2008-12-11T21:13:54.313 に答える