1 2 3 |
Ajaxとはつまるところ、JavaScriptでその大部分を動作させるRIA技術です。 従って、多機能になればなるほど、クライアントにDLするJS ファイルのサイズも大きくなります。 場合によってはファイルが増大しすぎて初期起動が遅くなる原因になる事もあるでしょう。 |
1 2 3 |
「Microsoft Ajax Minifier」はMicrosoft社から提供されるJavaScript圧縮ツールです。 圧縮方法もさまざま用意されており、単純に不要な文字やコメント文などを除去することでJSファイルのサイズを縮小させますが、 ハイパークランチモードでは変数名や関数名をより短い文字列に置き換える事でファイルサイズ縮小を行います。 |
1 2 |
コメント文除去なんかは可読性を低くする(多少ですが)ことで外部攻撃を防ぐ役割もちょっとありそうですね。 AjaxでRIA開発を行っている人は是非一度試してみて下さい。 |
http://www.publickey.jp/blog/09/ajaxjavascript.html
以下、上記URL内の記事をコピペして転載します。
1 2 |
マイクロソフトのAjaxに関する動きが目立ってきました。以前のエントリで紹介したように、 9月にはAjaxによるWebアプリケーションを最適化して起動速度を改善するツール「<a href="http://research.microsoft.com/en-us/projects/doloto/" title="Doloto">Doloto</a>」の配布を開始。 |
1 2 |
10月には、Ajaxのライブラリとして最も人気のあるjQueryのマイクロソフト自身による配布を開始すると同時に、 Ajaxライブラリを高速に配布するためコンテンツデリバリネットワーク、「Microsoft Ajax CDN」を立ち上げています。 |
1 |
そして、今度はJavaScriptファイルを、実行内容に影響を与えずに圧縮するツール「<a href="http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=34488" title="Microsoft Ajax Minifier">Microsoft Ajax Minifier</a>」の公開を開始しました。 |
1 2 3 4 |
現在開発中のMicrosoft Ajax Library Preview 6とともに公開されたこの圧縮ツールは、 同社のバイスプレジデントであるScott Guthrie氏によるブログのエントリ 「<a href="http://weblogs.asp.net/scottgu/archive/2009/10/15/announcing-microsoft-ajax-library-preview-6-and-the-microsoft-ajax-minifier.aspx" title="Announcing Microsoft Ajax Library (Preview 6) and the Microsoft Ajax Minifier">Announcing Microsoft Ajax Library (Preview 6) and the Microsoft Ajax Minifier</a>」 によると、既存のよく知られたJavaScriptの圧縮ツールよりも効率的にファイルサイズを小さくすることができるとのことです。 |
1 |
<span class="caption">jQueryを各種JavaScript圧縮ツールで圧縮した結果の比較。 JSMin、Packer、YUI Compressorよりも小さくなる(Scott Guthrie氏のブログから加工して引用)</span> |
ノーマルモードと、より強力なハイパークランチモード
1 2 3 |
Microsoft Ajax Minifierは、無償で公開されており、Visual Studioなどほかのツールは不要。 ダウンロードしてWindowsにインストールすれば誰でも使えるツールです。 ダウンロードは「<a href="http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=34488" title="ASP.NET - Release: Microsoft Ajax Library Preview 6">ASP.NET - Release: Microsoft Ajax Library Preview 6</a>」のページから行えます。 |
1 |
インストールして起動すると、次のようなコマンドプロンプトが表れます。 |
1 2 |
コマンド名は「ajaxmin.exe」です。引数として、オリジナルのJavaScriptファイル名と、 「-o」オプションに続けて出力ファイル名を指定します。 |
1 |
> ajaxmin inputfile.js -o outputfile.js<br> |
1 2 3 4 5 6 7 8 9 10 11 |
Microsoft Ajax Minifierにはノーマルモードとハイパークランチモードの2つのモードがあります。 デフォルトはノーマルモードで動作しますが、引数の指定によりハイパークランチモードを選ぶことができます。 ノーマルモードでは、JavaScriptファイル内にある不要なスペース、カッコ、セミコロン、デリミタ、コメント文などを 削除することで容量を小さくしていきます。 ハイパークランチモードでは、上記に加えて変数名、関数名を短い文字列へ置き換え、 参照されていない変数を削除、呼び出されていない関数の削除など、スクリプト内部を解析した圧縮を行います。 このほか、Microsoft Ajax Minifierには、独自アプリケーションから圧縮機能を利用できるdllや、 Visual Studioに組み込める機能なども含まれています。 |
Microsoft Ajax Minifier - Microsoft 製 JavaScript 圧縮ツール
1 2 |
Microsoft より JavaScript 圧縮ツールの「Microsoft Ajax Minifier」が公開され、以下よりダウンロード可能になったようです (via <a href="http://www.publickey.jp/blog/09/ajaxjavascript.html">Publickey</a>さん)。 |
1 |
Minifier はコマンドラインで実行するツールで、インストール後スタートメニューから起動すると以下のような画面が表示されます。 |
1 |
実際に圧縮するには、-o オプションに圧縮後のファイル名を指定し、以下のようにして実行します。 |
C:\Program Files\Microsoft\Microsoft Ajax Minifier>ajaxmin.exe c:\test\prototype.js -o c:\test\prototype-min.js
1 2 3 4 5 |
これで prototype.js を圧縮してみたところ、137KB が102KB になりました。 なんでも、JSMin、Packer、YUI Compressorより圧縮率が高いそうです。 かなり多くのオプションが用意されているようですし、Microsoft 製ということで安心して使用できるのもいい感じですね。 願わくば GUI ツールであればいうことがなかったのですが(笑)。 |
どうやら試してみる価値はありそうですね。