AjaxとXMLデータベースの可能性

最近Ajax(Asynchronous JavaScript+XML)という単語をよく目にするようになりました。特にgoogleがgoogle mapをはじめデータベースと連携したWebアプリケーションを展開するようになってから急に注目を浴びているようですね。
といっても、このAjaxは何か「新しい」技術ではないのですが。単にJavaScriptなどのスクリプトでhttp通信を行ってサーバー上のデータを取得し、DHTMLで動的に表示していく、というもの(再読み込みなしでの動的なコンテンツ更新)です。

このAjaxで核となるのは、サーバーとのhttp通信、そしてDHTMLですね。まず、http通信に関してはXMLHttpRequestという強力なhttp通信機能がブラウザのスクリプト実行環境に用意されるようになってきたので、これを使います。データベースへの問い合わせ(クエリ)を引数としてサーバーに渡して、サーバーがデータベースから生成した結果をXMLで取得する、というのが一般的な流れでしょうか。まあ、このXMLHttpRequest、名前はXMLですが、取得するのは別にXMLでなくても良いようですが。

続いてDHTMLについては、これまで何度か試してきたので説明不要でしょう。スクリプトでページ内の各要素のinnerHTMLなどを変更してコンテンツを動的に生成します。ただ、データベースのデータを閲覧するような場合は比較的大規模なテーブルをいじったりする場合もあるでしょうから、サーバー側のCGIで生成するのとどちらが得策か、検討する必要はあるでしょうね。

ブラウザの高機能化が可能にしたAjax。この度のブームは、いわゆる「Webアプリケーション」が本格的な「実用」段階に入ってきた証でもあるのでしょうか。ただ、今のところ実行環境が比較的新しいブラウザ(IE/FireFox/Operaなど)に限定されますし、ブラウザによってXMLHttpRequestの使い方(特に生成方式)が違ったりしますので、要注意です。DHTMLも、ブラウザ毎に微妙に違いますしね。
また、サーバー上のデータベースからデータを持ってくる場合、サーバー上のCGI/PHPで毎回ページを生成するのとどちらが良いか、十分に検討する必要もあるでしょう(ブラウザ依存の問題、XMLベースでデータを転送する時の転送量やスクリプトによるコンテンツ生成のスピードの問題など、考慮すべき点は多い)。

面白い手法ではありますが、「同じページ内でコンテンツを動的に更新する(ページ全体の読み込みを行わず処理を続ける)」というAjaxの特性の必要性を見極め、その利点を活かす形でアプリケーションの開発を行わないと、むしろ使いにくいものにもなりかねません。


プログラミング資料庫 > ホームページ・スクリプト実験室