Ajaxの基礎知識
Ajaxの定義を考える
皆さんはAjaxという言葉がなんの略かご存じですか?
AjaxはAsynchronous JavaScript + XMLの略称で、Asynchronousは非同期という意味です。この言葉はデザインコンサルティング会社Adaptive PathのJesse James Garrett氏によって提唱されました。
その内容はadaptive pathの2005年2月18日掲載記事で読むことができます(出典:Ajax: A New Approach to Web Applications)。
その記事によればAjaxという具体的な技術があるわけではなく、既存技術の組み合わせによって定義されると述べられています(図1)。
では、それを満たさないとAjaxと言えないのでしょうか?
データ通信に関して最近ではJSONというフォーマットが主流でXMLを使うことは少ないですし、動的なデータ取得はXMLHttpRequest以外にもJSONP、iframeを使った手法などもあり、必ずしもXMLHttpRequestでなければできないということにはならないでしょう。その基準を一概にAjaxとは言うのは少し無理があるようです。
このことに関連して「Life is beautiful」という有名なブログを執筆されている中島聡さんが記事を書かれています(出典:Ajaxの本質、「非同期メッセージ型Web・アプリケーション」のススメ)。
筆者はこの記事に関して拡大解釈している点もあるかと思いますが、本質をついた適切な指摘だと思います(図1)。XMLやJavaScriptが大事なわけではなく、非同期メッセージでサーバと通信してUser Interfaceを提供するというWebアプリケーションの形態が重要なのだと述べられています。この記事はAjaxの表層的な面でなく、何が特徴的でどのようなメリットがあるかということを端的に示していると言えるでしょう。ぜひブログの記事本文もご覧になってみてください。
AjaxはWebサイトにおける1つの手段でしかない
Ajaxの登場により、AjaxとFlashのどちらが優れているのかという議論がされるようになりました。たしかにAjaxの技術でFlashとクロスオーバーするところは増えてきました。しかし、それぞれ得手不得手があるので実際はどちらが良い、悪いと決められるものではないでしょう。
動画や音声の扱いに関してはFlashの方が断然強力ですし、テキスト処理や表示に関してはHTMLの方が柔軟な処理ができます。先ほどの中島さんの記事からすれば、大きな枠組みで言ってFlashもAjaxテクノロジであるとも言えます。どちらも次世代のWebプラットホームを担う重要な技術です。適材適所でうまく共存させていくのが正しい使い方だと執筆は考えています。
Ajaxという言葉は具体的な技術を指し示すものではないので、完ぺきに定義することは少し難しく、それはWeb 2.0と似ていると言えるでしょう。ただ、この言葉が生み出されたことによってJavaScriptが見直され、技術者に注目されるようになり、ひいてはWebブラウザそのものが見直され、現在のWebブラウザ再戦争のきっかけの1つとなりました。結果として、言葉が定義されるということの重要さをあらためて認識させられたと言えるでしょう。
また、当たり前のことですがAjaxを使うこと自体が目的ではなく、ユーザ体験を向上させること、ひいてはより良いWebサイト・サービスを作るための手段の1つにすぎません。使用については適切にAjaxの本質を見極める必要があると言えます。
次ページでは、Ajaxを効果的に使ったWebサイトを紹介します。