Webアプリに使えるAjaxライブラリ8選!:Ajax解体新書(3)(4/4 ページ)
第1回「Ajax技術の目に見えない通信内容をのぞいてみよう」ではAjaxの技術背景を、第2回「Ajaxの特徴に潜むリスクをサンプルアプリで確認しよう」ではAjaxのセキュリティリスクを見てきました。第3回の今回は、Ajaxの本格的な開発には欠かせないAjaxライブラリについて見ていきます。
Ajaxライブラリを利用する際の注意点
ここではAjaxライブラリを利用するうえでの注意点を2つ挙げたいと思います。
ユーザビリティ
WebアプリケーションへのAjax採用の主な理由に「ユーザビリティの向上」があると思います。Ajaxの利用により、リッチなGUI部品を配置したり画面遷移を抑えたりすることでユーザーの操作性を大幅に向上させることができます。前章までで見てきたとおり、Ajaxライブラリを用いることでWebアプリケーションにさまざまな機能を追加することができますが、単にそれらの機能をやみくもに採用するだけでは、見た目は派手なだけで実際はユーザーにとって使いづらいものになることは明らかです。
また同時に考えなければいけないのがユーザビリティの向上と間接的にトレードオフの関係にある、処理の重さです。Ajaxライブラリの機能を数多く利用しようとすると、Ajaxライブラリの初期ロードに時間がかかったり、機能利用時にレスポンスが遅くなったりと、処理がもたついてきます。JavaScript処理はサーバではなくユーザー環境で実行されるので、ユーザーの環境に対する配慮も必要です。
つまり、Ajaxライブラリを利用すればユーザビリティが向上する、といった単純な話ではなく、ユーザー視点に基づく総合的な観点からユーザビリティの向上について取り組んでいく必要があるといえます。
相互運用性
今回いくつかのAjaxライブラリを紹介してきましたが、1つのAjaxライブラリで開発者のすべての要求を満たせるとは限りません。また、マッシュアップのような複合コンテンツを開発する際にも、複数のAjaxライブラリを同時に利用するケースが出てくる可能性があります。
そういった場合、複数の異なるAjaxライブラリを同一のWebアプリケーションに共存させたいという欲求が出てきます。しかし現在のほとんどのAjaxライブラリではそういった相互運用は考慮に入っておらず、実際利用しようとするとJavaScriptオブジェクト・関数・イベント処理の衝突などといった問題が発生する可能性があります。
例えばjQueryでは公式サイト内の“PrototypeAndJQuery”において、Prototypeやscript.aculo.us等のほかのAjaxライブラリとともに利用する際の衝突の回避方法を解説しています。
相互運用性については次章の「標準化が進むAjaxライブラリ」で再度触れたいと思います。
標準化が進むAjaxライブラリ
Ajaxライブラリの今後を占ううえで注目すべきなのはAjax開発の標準化を目指す業界団体、OpenAjax Allianceの活動です。
OpenAjax Allianceとは2006年初めに結成された団体で、IBM、Sun Microsystems、Eclipse Foundation、Mozilla Corporationなど50近くの企業・団体がメンバとして参加しており、Ajaxの利用推進や標準化にかかわる活動をしています。
その活動の1つとして、OpenAjax Alliance結成時に設立された「Interoperability Committee(相互運用性委員会)」では、複数のAjaxライブラリを同一のWebアプリケーション内で利用する際に生じる相互運用性の問題に焦点を当てています。
相互運用性委員会ではその問題を解決するために、OpenAjax Hubと呼ばれる、仕様書・テスト・参照実装(オープンソースのJavaScriptコード。SorceForge上にて提供)から成る成果物を2007年初めに提供する予定です。
AjaxライブラリがOpenAjax Hub仕様を満たす(“OpenAjax Compatible”)ことで、同じく“OpenAjax Compatible”なほかのAjaxライブラリとの相互運用が可能になります。
数多くのAjaxライブラリが普及してきた現在、今後はAjaxライブラリ間の相互運用が問題となってくるでしょう。OpenAjax Allianceの動向に今後も着目していきたいところです。
プロジェクトに最適なAjaxライブラリは見つかりましたか?
今回世に出回っているAjaxライブラリのうち、主に人気のある一部のAjaxライブラリについて機能比較を行いました。ほかにも今回紹介し切れなかったAjaxライブラリは数多くありますが、分類的にはある程度網羅できたのではないかと思います。
今回の機能比較が、自プロジェクトに最適なAjaxライブラリを採用する際の1つの判断材料となれば幸いです。
【筆者プロフィール】
株式会社NTTデータ
技術開発本部 ソフトウェア工学推進センタ
エキスパート
川田洋平
同社の研究開発部門にてWebシステムの研究開発に従事。 Ajaxベースのリッチクライアントフレームワーク「マスカット」の開発に初期から携わり、 2006年9月20日にオープンソースとして公開。現在ではマスカットプロジェクトのプロジェクト運営委員会(PMC)およびコミッタとして活動を続けている。 そのほか、オープンソースカンファレンス、JavaOne Tokyo 2005などでの講演を実施。
■商標について
・Sun Microsystems、Javaに関連するすべての商標およびロゴマークは、米国Sun Microsystems, Inc.の米国およびその他の国における商標または商標登録です。
・その他、記載されている会社名、商品名、又はサービス名は、各社の登録商標又は商標です。
Copyright © ITmedia, Inc. All Rights Reserved.