最近JavaScriptが再度注目を集めている理由のひとつに、Googleマップ(ビューの移動や縮尺の変更、衛星写真への切り替えを行う際、地図の再読み込みを必要としない機能を持つ)やGoogleサジェスト(検索窓に文字を入力すると、次の入力を予想し、リアルタイムで候補になりうる言葉を表示する機能)などで利用されているAjaxの人気があります。
Ajaxとは?
Ajaxとは、Asynchronous JavaScript + XML(非同期的なJavaScript + XML)の略語であり、この言葉に提唱したJesse James Garrettによれば、次のように定義されています。
(Ajax: A New Approach to Web Applications
https://adaptivepath.org/ideas/ajax-new-approach-web-applications/)
・XHTMLとCSSを使った標準技術に基づくプレゼンテーション
・Document Object Modelを使ったダイナミックな表示とインタラクティブな仕組み
・XMLとXSLTを使ったデータの変換や操作
・XMLHttpRequestを使った非同期的なデータの取得
・それらをJavaScriptによって結びつける
つまりAjaxという1つの技術があるのではなく、JavaScript、CSS、XML、加えてサーバ側のWebアプリケーション(PHP、Perl、Java、DBなど)のような、既存の技術を組み合わせることで実現されるWebアプリケーションの新しい方法を総じてAjaxと呼んでいるのです。
こうした中で特に注目されたのがXMLHttpRequestというJavaScriptのHTTP通信機能です。XMLHttpRequestはHTTPプロトコルを使ってXMLデータを要求するオブジェクトであり、サーバから非同期的にデータを取得できます。実際にはXMLデータだけでなく、テキストデータも扱えます。
従来のWebブラウザを使ったアプリケーションでは、サーバにデータを送信して処理結果を得るには、ユーザ側でボタンを押すなどして、意図的にWebページを先に進めなければなりませんでした。しかしAjaxでは、サーバと非同期通信を行い、指定したURIからXMLなどのデータを逐一読み込むことで、ページの遷移を行わずに表示内容を動的に変化させることを可能にしています。