Ajax
概要
1997年頃、第１次ブラウザ戦争が勃発し、その中で動的にWebページを書き換えるDHTMLという概念が登場した。登場したばかりの頃は、クライアントサイドでページを書き換える必要性は薄いとされ、ページの動的な装飾のみに有用であると考えられていた。しかし、Web技術者の実験的なコーディングの結果、JavaScript上で非同期通信を記述することで、業務や実用に耐える優秀なインターフェースを備えたアプリケーションをHTML+CSS+JavaScriptで作成可能であることが徐々に判明していった。
従来のWebアプリケーションでは、サーバにリクエストを送信後、レスポンスを新たにウェブページとして受け取ることで画面遷移が発生していたが、Ajaxにより画面遷移を伴わない動的なWebアプリケーションの製作が実現可能になる。
例えばWeb検索に応用することで、従来は入力確定後に行っていた検索を、ユーザがキー入力をする間にバックグラウンドで行うことによってリアルタイムに検索結果を表示していく（インクリメンタルサーチ）といったことが可能になる。
上記の機能は、Webブラウザ標準搭載の技術のみで実現できる。Ajaxという用語が考案される前から手法自体は存在しており同時多発的に試みられていた。しかし、2005年に行われた、コンサルティング会社を経営するJesse James Garrett氏によるAjax: A New Approach to Web Applicationsというエントリの投稿と、GoogleがGoogle マップやGoogle サジェストにこの手法を使用したことで有名になり、Webアプリケーションの操作感覚をネイティブアプリケーションの操作感覚に近付ける手法としてAjaxが注目され始めた。さらに、Googleでは、デスクトップアプリケーションと遜色のない電子メールクライアントであるGmailやGoogle Calendarでも積極的にAjaxを使用し、Ajaxの実用性がGoogleのWebアプリケーションを通じて世界中のインターネット技術者に広く認知された。
AjaxによるWebプログラミング（Webアプリケーション製作）が注目された背景には、この従来のページ遷移のみに頼ったWebの使い勝手の悪さに対する不満や、XML、DOMなどのWeb関連技術の標準化（ウェブ標準）、および高い機能を持ったWebブラウザの普及などが挙げられる。
また、ダウンロード型アプリケーションは、マニア層から先に広がりにくい、競合がOSメーカーとなったときに競争に負けてしまう、といった問題を抱えているため、ダウンロード型アプリケーションからWebアプリケーションに切り替える技術として、Ajaxが使用されている。
問題点
従来の技術の組み合わせであるため、それぞれの持つ問題をそのまま内包する。
例えば、各種Webブラウザ間のDHTMLの実装の違いをコードで吸収する必要がある。
実際、Ajaxを実現する技術はブラウザ間で実装に違いがあり、基幹技術であるXMLHttpRequest実装の元となったInternet Explorerの実装の解説ではXMLHttpRequestという用語は見あたらず、ActiveXでMicrosoft XML (MSXML) 能を呼び出して実行する。Internet Explorer 6では、Microsoft XML 3.0が付属しているため、ActiveXを無効にしていない限りこの機能が使える。Microsoft XMLの実装ではバイト配列を取り出せるなど機能的な違いもある。言語としてVBScriptが使える点も異なる。
また、Ajaxアプリケーションでは動的にページの一部が書き換えられる為、デザインとコードが以前のように単純に分離できないという開発上の問題点がある（Model View Controllerも参照）。このため、現在では通常のWeb開発に比べ開発により時間がかかると言われている。
Ajax の必要性が叫ばれるにつれこうした問題を解決すべく、アプリケーションフレームワークの開発が進み、これらを利用することで、こうした問題は解決しつつある。