図 一般のWebアクセスとAjaxを利用したWebアクセスの違い
図 一般のWebアクセスとAjaxを利用したWebアクセスの違い
[画像のクリックで拡大表示]

 Ajaxは,対話型Webアプリケーションの新しい開発手法を表す言葉である。2005年2月に登場したばかりの造語で,「Asynchronous JavaScript+XML」の略だ。単独の新技術ではなく,JavaScriptやXMLといった複数の既存技術が組み合わさって,これまでにないような使い勝手のよいWebアプリケーションを実現する。

 Ajaxの応用例として有名なのは「Googleローカル」だろう。これは,Webブラウザに地図を表示するWebアプリケーションで,マウス操作で地図を滑らかにスクロールして,どこまでも表示範囲を移動できる。ほかにも,別のパソコンのディレクトリの内容をWebブラウザに表示し,ファイルを移動したり削除したりするとリアルタイムで実際のディレクトリに反映されるといったアプリケーションを実現できる。このように,従来のWebアクセスでは難しいアプリケーションを簡単に実現するのがAjaxだ。

 従来のWebアクセスの動作は,すべてユーザーの操作のタイミングが引き金となって,操作と1対1で結果が出るものだった。ユーザーがWebブラウザに操作を加えると,そのタイミングでWebブラウザはWebサーバーからデータを取得し,それをWebページとして画面に表示する(図の上)。

 一方,Ajaxで構築したプリケーションの場合は,ユーザーがアクセスしてくるとまず最初にJavaScriptのプログラムをダウンロードさせる。この後,ユーザーの操作は直接Webサーバーに届くのではなく,ダウンロードしたJavaScriptを介して処理される。ユーザーの操作を受け付け,Webサーバーとデータをやりとりしたり,Webブラウザの画面を表示するのは,JavaScriptの仕事になる。

 例えば前述したスクロール地図の場合,JavaScriptは初めに実際の表示領域よりも大きめの地図データをダウンロードしておく。そして,ユーザーがマウスで地図をスクロールすると,JavaScriptのプログラムがあらかじめダウンロードしておいたその方向の地図を表示して時間を稼ぐ。その間に,スクロール先の地図データを追加でダウンロードし,今度はそれを表示する(図の下)。このようにJavaScriptは,ユーザーの操作とは独立して動作している。これがAjaxの「Asynchronous」(非同期)の意味するところだ。2006年には,Ajaxのしくみを応用した,ものすごいWebアプリケーションが登場するかもしれない。