Ajax(エイジャックス)

Webアプリケーションのプレゼンテーション実装テクニックの一つ。Ajaxではサーバサイドの処理結果を表示するとき、別のページへ遷移する代わりに、ページを表示したままバックグラウンドでサーバと通信(非同期通信)し、処理結果のみを取得する。

Ajaxの基本スタイルは、XMLHttpRequestでデータを非同期に取得し、DOMでHTMLを書き換え、CSSで見た目を整形するというもの。非同期通信にはJSONP、iframeも使用される。

Ajaxスタイルのアプリケーションは2002年頃から作成されているが、一般的に広まったのは2005年以降、Ajaxと命名されるとともに爆発的に普及した。今ではWebアプリケーションを作成する上で必須の知識となっている。

AjaxはAnsynchronus JavaScript And XMLの略とされているが、こじつけである1)。AJAXというアメリカではメジャーな洗剤にちなんで命名されたというのが真相。オランダにはAjaxという強豪サッカーチームがあるが、そちらは無関係である。

従来のWebアプリとの違い

  • 画面遷移の排除。ボタンやリンクを押しても画面が切り替わらないWebアプリケーションが作成可能。
  • サーバ非依存のプレゼンテーション層。画面表示とコントロールをクライアント側に実装できる。プレゼンテーション層とドメイン層はXML等のデータによって仲介される。
  • 非同期処理。ユーザは処理の完了を待つ必要がない。

非同期処理はAjaxの最も重要な要素。非同期処理を上手く導入する事でユーザインターフェースの機能性を大幅に向上する事が可能となる。最近ではAjaxを用いた疑似デスクトップ環境とも言うべきWebアプリも作成されているが、実験レベルで実用には至っていない。

問題点

  • コーディングがかなり面倒。
  • 仕様の相違。ユーザエージェントによってXMLHTTPやjavaScriptの実装が微妙に異なっている。
  • 開発環境の問題。JavaScriptはデバッグがしにくい、開発環境が貧弱、等。
  • 設計の難しさ。データベースのトランザクション管理やセッション管理が重要なエンタープライズWebアプリを非同期処理するのは容易ではない。
  • RESTアーキテクチャとの相性の悪さ。URLクリップやブックマークがし難い。

これらの欠点は、技術レベルの向上、ライブラリ、統合開発環境などによって少しずつ改善されてきている。

基本

Ajaxの使えるライブラリ

フレームワークとAjax

1) こじつけ命名はよくある話
 
ajax.txt · 最終更新: 2009/02/27 01:46 (外部編集)
 
特に明示されていない限り、本Wikiの内容は次のライセンスに従います:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki