GoogleからGoogle AJAX APIを拡張する新しいサービス「The AJAX Libraries API」が公開された。The AJAX Libraries APIはGoogleのサイトで人気のある有益なJavaScriptライブラリを提供しようというもの。これまでYUIであればYahoo!、DojoであればAOLなどが同類のサービスを提供していたが、特定のJavaScriptライブラリに限定することなく有益であれば配布に追加するというポリシーをもっている点が新しい。
JavaScriptライブラリを活用するタイプのWebアプリケーションは数多くある。結果として、何度も似たようなJavaScriptライブラリをダウンロードしていることになり、このままいけば今後ライブラリ自体のサイズの巨大化や多くのサービスの登場でライブラリダウンロード総量は増加することになる。
The AJAX Libraries APIはこれを解決することを目指している。主な特徴は次のとおり。
- Google CDNを活用したファイルの配布
- 対応していればGzip圧縮転送を有効にする
- ダウンロードするファイルは可能なかぎり最小化されたものとなる
- キャッシュが有効になるように工夫されており、一度どこかでダウンロードしてあればキャッシュが使えるため不要なダウンロードしなくなる
- バージョン番号にワイルドカードが指定できるため自動的にマイナーアップデートを実施できる
ライブラリはフルパスで指定する方法とgoogle.load()を指定する方法がある。google.load()を使う場合はバージョン番号にワイルドカード指定が使える。たとえばgoogle.load("prototype", "1.6.0.2")なら特定のバージョンになるが、"1.6.0"にすれば"1.6.0.3"、"1.6.0.4"などにも対応することになる。"1.6"にすれば"1.6.1.x"や"1.6.2.x"も対象になる。Prototypeブログより次に使用例を抜粋する。
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.2/prototype.js"\></script\>
AJAX Libraries APIとPrototypeの使用例その1 - Prototypeブログより抜粋
<script type="text/javascript" src="http://www.google.com/jsapi"\></script\>
<script type="text/javascript"\>google.load("prototype", "1.6.0.2");</script\>
AJAX Libraries APIとPrototypeの使用例その2 - Prototypeブログより抜粋
AJAX Libraries APIはWebアプリによって使われれば使われるほどキャッシュにヒットする確率が高くなり、ユーザに利益がもたらされる。現在サポートされているのはjQuery、Prototype、script.aculo.us、MooTools、Dojo。今後さらにライブラリが追加されるほか、Webブラウザが対応すれば特定のJITコードを送信するといったサービスも検討しているようだ。Prototype側の反応も好意的なものとなっている。
AJAX Libraries APIのリスクはサービスがGoogleに依存するということにある。また取り組みが成功したとしても数キロバイト程度のキャッシュにしかならないため、はたしてユーザエクスペリエンスの改善に効果があるのかどうかといった疑問も残る。しかしユーザ視点からみればJavaScriptライブラリがGoogleから配布されることは好ましいことだろう。Webアプリデベロッパは同サービスの活用を検討したい。