毎度新しい技術がどんどん登場してくるこのweb業界。
またまた新しい技術を覚えていかなければならない雰囲気がしてきています。
その名を「Ajax(エイジャックス)」。
常にアンテナを張り巡らせている「先生方」はご存知かと思いますが、ここではそうでない方のためにご紹介しておきます。
Ajaxとはそれ自体が技術なのではなく、Asynchronous JavaScript + XMLの略です。
Webブラウザに実装されているJavaScriptのHTTP通信機能を使って、Webページのリロードを伴わずにサーバとXML形式のデータのやり取りを行なって処理を進めていく対話型Webアプリケーションです。
Ajaxを用いて構築されたインタフェースの代表例としてGoogle Suggestや Google Mapsがあります。
Google Suggestは検索語句を一文字入力するごとに、その語句を推測して候補を表示します。この際、画面遷移を伴わずに候補が絞り込まれていく様子が画期的なのですが、この裏側では XMLHttpRequest による非同期通信が発生しています。つまり、検索語が入力されるたびそのイベントハンドラにフックしてXMLHttpRequestによりサーバーからリストを取得し、それを表示しているのです。
一方Google Mapsは、Javaアプレットや Flashなどの技術を使うことなしに、マウスで動かせる地図をブラウザ組み込みの技術のみで実現しています。閲覧している地図が境界に達する前にマウスの動きに反応して、次に読み込むべき地図を非同期通信により取得しているのです。
ここでいくつか聞きなれない用語が出てきていますが、例えば「XMLHTTPRequest」というやつ・・
これは、JavaScript/JScriptのHTTP通信のためのオブジェクトで、非同期通信を行うため、リロードなしでサーバ側と連携した状態遷移が実現できるそうです。
従来、Webブラウザを使ったWebアプリケーションでは、データをサーバに通知して処理結果を得るには、ページ全体をロードし直さなければならず、ネイティブアプリケーションのような操作性を得ることは難しかった訳です。Ajaxでは、指定したURLからXMLドキュメントを読み込む機能を使い、ユーザの操作や画面描画などと並行してサーバと非同期に通信を行なうことで、サーバの存在を感じさせないシームレスなWebアプリケーションを実現することができます。
(「はてなダイアリー」「IT用語辞典」より一部抜粋)
解説を見ている限りでは、リアルタイムにサーバーと通信を行ってデータを取得するところなど、Flashの機能でももちろん可能な事です。
ここにはFlashでもXMLオブジェクトが絡んできたりしますので、XMLを介在する部分などでは似た部分もあるのが当然なのですが・・
現状ではプラグインを必要としない事以外に、FlashではなくAjaxを使うメリットがまだ見えていないのですが、他にも考えられるのでしょうか?
ご存知の方がいらっしゃいましたらぜひご教えていただきたいところです。
・・ともあれ、この「Ajax」、今後のwebデザインの分野に入り込んでくる可能性は高い様ですので、今まで同様学んでおかねばならない技術のひとつだと思われます。