Microsoftが提供するAjax高速化ツール

Ajaxの普及により、WebアプリケーションでJavaScriptが積極的に活用されるようになって久しい。しかし、JavaScriptを多用するWebアプリケーションでは大量のJavaScriptを読み込む必要があるため、起動に時間がかかるという問題がある。

MicrosoftのDevLabsで提供されているDolotoはAjaxアプリケーションにおいて利用される大量のJavaScriptを自動的に分割し、必要に応じて遅延ロードするよう変更してくれるツールだ。

Dolotoはプロキシサーバとして動作し、Dolotoのプロキシサーバ経由でAjaxアプリケーションを動作させることでプロファイルが取得される。Dolotoはこのプロファイルを参考にJavaScriptを分割し、遅延ロードするようアプリケーションに変更を加える。

なお、Dolotoの利用には.NET Framework 3.5が必要となる。

Dolotoを試してみよう

Dolotoのインストールはダウンロードしたインストーラを実行するだけなので非常に簡単だ。

起動すると図1のようなダイアログが表示され、Dolotoのプロキシ設定や変更後のアプリケーションを出力するディレクトリなどを指定する。設定後に[Profile]ボタンをクリックするとプロキシサーバが起動し、プロファイルが開始される。デフォルトではlocalhost:8888でプロキシが稼働するのでブラウザの設定を変更し、このプロキシを利用するよう設定した状態でWebアプリケーションの操作を行おう。

図1 Dolotoの設定

プロファイルを終了するには[Next]ボタンをクリックすればよい。任意のプロファイル名を入力すると、出力フォルダ/stats_プロファイル名/にプロファイルデータが出力され、図2のようにプロファイル結果を確認することができる。

図2 プロファイル結果の確認

続いてプロファイル結果に基づいてJavaScriptのリライトを行う。Dolotoはクラスタという単位にグループ化され、そのクラスタが必要になったタイミングでダウンロードされるようJavaScriptコードをリライトすることでアプリケーションの最適化を行う。以下の画面で[Cluster file name]欄にプロファイル結果からclusters_xxxx.txtというファイルを選択して[Rewrite]をクリックしよう。

図3 JavaScriptコードのリライト

設定した出力フォルダ(デフォルトでは出力フォルダ/stats_プロファイル名/Rewritten/xxxx/)に変更後のJavaScriptファイルが出力される。

図4 生成されたファイル

これらのファイルのうち、sc_xxxxx.jsというJavaScriptファイルがクラスタ化されたJavaScriptコードだ。他のJavaScriptファイルは必要に応じてこれらのクラスタをダウンロードするようDolotoによって変更が加えられている。これらのファイルを元のアプリケーションの代わりにサーバにアップロードすればよい。

以上のようにDolotoは非常に手軽にJavaScriptを多用したアプリケーションの最適化を行うことができる。Microsoft Researchのページによると、Dolotoを使用することで、アプリケーション起動時に読み込む必要のあるファイルのサイズを最大50%に削減できるとのことだ。Dolotoの効果の大きさがわかるだろう。

まとめ

JavaScriptを多用したWebアプリケーションでは起動時間の遅さが問題になりがちだ。アプリケーションの規模が大きくなればなるほどこの問題は顕著になる。アプリケーション側で遅延ロードを行う仕組みを作り込むケースもあるが、あとから対処しようとすると非常に手間がかかることが多い。Dolotoを利用すれば既存のアプリケーションに手を加えることなく起動速度を高速化できる可能性がある。要チェックのプロダクトと言えそうだ。

ただし、Microsoft DevLabsのプロダクトはMicrosoftの開発部門が取り組んでいる試験的なソフトウェアを公開する場という位置付けであり、DolotoもMicrosoftの正式な製品というわけではない点には注意されたい。