SSブログ

AJAX [AJAX]

AJAX(Asynchronous JavaScript and XML)

 以下の要素を用いインタラクティブなWebアプリケーションを 構築するための開発手法を表現した造語です。

  • XHTML と CSS を使用した標準的なプレゼンテーション
  • Document Object Model を利用した動的な表現およびインタラクション
  • XMLとXSLTを利用したデータの送受、操作
  • XMLHttpRequestを使用した非同期のデータの送受
  • 上記を統合するためのJavaScript

 AJAX という技術自体があるわけではありません。AJAXは、JavaScript の組み込みクラスである XMLHttpRequest の非同期通信を利用して、ウェブブラウザ上でインタラクティブなWebアプリケーションを実現するための開発手法です。これを Jesse Jaames Garrett氏が2005年の2月に AJAX という造語で表現したのがはじまりとなります。

 AJAXという造語を提唱したギャレット氏の定義は上記のとおりですが、技術的な観点から捉えた
 本質的な点は、「1つのWebページの中で非同期にサーバと通信をおこなうことで、Webページの
 遷移とは依存せず動的にWebページを更新する技術」です。 (ギャレット氏もAJAXアプリケーションでは、XML および(または) XSLT を使用しないとならないわけではないと訂正されています。(AJAX: A New Approach to Web Applications参照))

 AJAX を用いて構築されたWebアプリケーションの代表例には Google Suggest や Google Maps が挙げられます。Google Suggest は検索語句を一文字入力するごとに、絞りこんだ候補を表示します。システムでは、検索語句が入力されるたびにサーバと非同期通信をおこない、絞り込んだ候補を取得してます。初めて AJAX のアプリケーションを見たときには、FlashやJava Appletを使用せずに画面遷移を伴わず候補が絞り込まれていくことに非常に衝撃を受けました。 有用な用途としては以下のような分野が考えられます。

○有効な用途

  •  オートコンプリート
    入力文字列を基に後続の文字列の候補を補完する機能(辞書、メールアドレス等)
  • 詳細情報の表示
    郵便番号を入力したら、その住所を表示する機能等
  • 可視性操作性の向上
    ツリー表示、メニュー、プログレスバーを画面遷移することなく表示する
  • 表示データの更新
    天気、株価など日々刻々と変化するニュースをサーバーに随時問い合わせ更新する
  • サーバー通知機能
    一定時間ごとにポーリングすることで、サーバからの情報を取得して表示を更新する。

話題になっているAjaxですが、実際のプロジェクトに導入するためには現時点では以下のような考慮すべき点があります。

  •  現時点では標準仕様とはいえない。
     AJAXの中核となる技術である XMLHttpRequest は、現時点では W3C や ECMA の標準仕様には含まれておらず、一部のWebブラウザではサポートされていないことに注意する必要がある。
  • Ajaxが動作するブラウザの範囲
     Operaでは8からサポート, IEの古いバージョンでは未サポート。また、セキュリティ等の事情で JavaScript を無効に設定している Web ブラウザでは、もちろん AJAX アプリケーションは動作しない。
  • デバッグの難解性
    JavaScriptとサーバアプリケーションを連携させテストをおこなう必要があり、デバッグは容易とはいえない。
  • セキュリティ
    JavaScriptのコードを解析することでサーバ側のプログラムの構造を推測され、クラッキング等の不正アクセスに繋がる恐れがある。
  • サーバに対する負荷
      随時情報をサーバに問い合わせるため、サーバに与える負荷も大きくなることが予想される。
      レスポンスと性能のバランスをどうするかを明確にする必要があると思われる。

最近の記事や関連アプリケーションに関して少し調査してみました。以下で、少し紹介してみます。

Articles

Tools

サンプル

このエントリーは

ブログ投稿クライアント

の「BlogWrite」により投稿されました。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。