Hatena::Groupmediaforcelabs

ラボ広報担当の備忘録

メディアフォースラボ広報担当の滝川陽一です。技術関連ブックマーク、広報などなど書いていきます。
 | 

2010-05-25

トピック解説「Ajax」

20:18

 Ajaxとは、「Asynchronous JavaScript + XML」の略で、「エイジャックス」もしくは「アジャックス」と発音します。直訳では「JavaScriptXMLによる非同期処理」となりますが、サーバーサイドとの送受信を非同期に行い、情報を動的に画面上に反映していく技術の総称です。元々は非同期通信と、それに伴う画面の動的処理のみを指しますが、広域な意味では、Flash Playerの様なプラグインを用いず、HTMLCSSJavaScriptといった、Webブラウザが元来持つ機能のみでRIAを実現させる手法全般を指す場合もあります。


 従来のWebアプリケーションでは、次に新しい情報を見たい場合、サーバーに情報を要求すると、Webページ全てを更新する必要がありました。これをXMLHttpRequest(HTTP通信を行うためのJavaScript組み込みクラス)を用いることで非同期通信を実現し、必要な箇所だけ更新させる、ということが可能になりました。


 Ajaxが広まったのは、米国Google社の提供する、GoogleマップGoogleサジェストといったWebサービスがきっかけでした。その後も次々とAjaxを用いた動的なWebサービスを同社は提供し続ける事で、利用者に「Ajaxでも十分に業務アプリケーションでも耐えられる」と印象付けることに成功しています。


 一方、Ajaxを実装する開発者側には、ブラウザ間で仕様が異なる為にその違いを吸収する為本来は不要な実装まで施さなくてはいけない、という「クロスブラウザ問題」に頭を悩ますこととなります。スクラッチAjaxを開発した場合、どうしてもブラウザごとにそれぞれ異なる実装を行わなくてはならず、開発もテストも通常のWebアプリケーションより遥かに工数を必要としました。


 これらを解決する為に、OSSAjaxライブラリがいくつも公開されるようになりました。クロスブラウザ問題を解決してくれる他、アニメーションコンポーネントなど便利な機能を数多く提供してくれます。現在はAjax開発を行う際にAjaxライブラリを用いない事はまずありえません。


 Ajaxライブラリには有名なもので、prototypeJS、jQueryExtJS、Spry、YahooUIなどが存在します。これらは全てJavaScriptがベースですが、中にはGoogle Web Toolkit(GWT)のように、Javaで記述して、コンパイル結果をJavascriptCSSで出力するようなツールもOSSで公開されています。


 前回お伝えしたHTML5が浸透すると、Ajax実装の際のコード記述量が大幅に削減されることや、今までAjaxでは扱えなかった音声や動画、複雑なアニメーションなども実装可能となる為、Webアプリケーションの主流が大きくAjaxに傾くのではないかと予想されています。


 「Ajax」は技術の総称であり、「Ajax」という製品やツールが存在するわけではありません。くれぐれもお間違えないようご注意下さい。

 |