続いてAjaxライブラリの機能比較を行いますが、その前にAjaxライブラリが提供する機能を大きく3つの機能分類に分けたいと思います。
上記機能分類に基づく各Ajaxライブラリの対応関係を表2に示します。
|
||||||||||||||||||||||||||||||||||||
表2 機能分類対応一覧 |
Rico、Dojo、Yahoo! User Interface Libraryのようにすべての機能を提供しているライブラリもあれば、そのほかのライブラリのように特定の機能に特化しているものもあるのが分かります。
以降では、機能分類ごとにもう少しブレークダウンした機能の比較を見ていきたいと思います。
表3では、表2の「JavaScript関数拡張」に対応しているAjaxライブラリについて、より詳細な機能の比較を示します。
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
表3 JavaScript関数拡張 |
当然かもしれませんが、Ajaxの主要な機能である通信/DOM/イベントの処理機能についてはすべてのAjaxライブラリがカバーしています(表中ではRicoはDOM/イベントに対応していませんが、表1の備考でも挙げたように別途Prototypeを利用するため、Prototypeの機能はそのままRicoで利用できます)。
表4では、表2の「画面効果」に対応しているAjaxライブラリについて、「エフェクト」と「ドラッグ&ドロップ」についての比較を示します。
|
|||||||||||||||||||||
表4 画面効果 |
MochiKitのドラッグ&ドロップ機能についてはバージョン1.4よりscript.aculo.usの機能を利用しています。
表5では、表2の「GUI部品」に対応しているAjaxライブラリについて、より詳細なGUI部品の比較を示します。
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
表5 GUI部品 |
表5を見ると、限定的なGUI部品を提供するものと、デスクトップアプリ並みの画面が構築できるほどの豊富なGUI部品を提供するものに分かれているのが分かります。テキストボックスやボタンなどの基本的なGUI部品はHTMLで提供していますが、例えばRialtoのテキストボックスでは、テキストボックス内の値のgetter/setter、テキストボックスの編集可能/不可の切り替え関数といった、GUI部品に対する便利なAPIを用意しています。
これまでAjaxライブラリの機能について比較してきましたが、Ajaxライブラリがどのような機能を提供するのかがある程度見えてきたのではないでしょうか。
実際に自分でAjaxライブラリを利用する際は、今回取り上げてきた機能を考慮に入れて必要な機能などの要件を整理したうえで、その要件を満たすAjaxライブラリを表1から表5の比較表を参考に絞り込み、より詳細な機能要件についてはドキュメントやソースを適宜調べたうえで採用する、といったアプローチになると思います。
Copyright © ITmedia, Inc. All Rights Reserved.