chapter0. Ajax(エイジャックス)とは
Ajaxとは
"Asynchronous JavaScript + XML"
の略称です。
直訳すると、"非同期なJavaScript + XML"ということになるのかな。
Adaptive Path社のJesse James Garrett氏によって命名されました。(参照
JavaScriptやXML等の特定の既存技術を組み合わせて、
場合によってはFlashのお株を奪ってしまうようなリッチウェブアプリケーションを
作ってしまえる作ってしまう、この方法をAjaxと呼びます。
Ajaxに必要な特定の技術を以下に示します。
・XHTML と CSS を用いた、Web 標準に基づくプレゼンテーション
・Document Object Model(DOM) によるダイナミックな表示と相互作用
・XML と XSLT による、データの変換や操作
・XMLHttpRequest による、データの非同期的な取得
・それらを JavaScript によって結びつける
なにやら難しそうなものも見受けられますね。
しかし、いきなり全部を満たす必要は無い、というか、別に全ての技術を使わなくても
今までと違うアプリケーションは出来るので、必要なものだけ使えばいいと思いますし、
代替する言語や技術を使ってももちろん可能です。
Flashと連携させてたりとかね。

というわけで、このサイトでの説明には、HTMLやJavaScriptを知っている必要がありますが、
ここに来た人にはそれらの説明は不要でしょう。
(HTMLやJavaScriptを知らない方は先にこちらをオススメします)

さて、まずは Web における"非同期" の説明をします。
非同期とは、簡単に言うと任意のタイミングで・・・という意味になります。
例えば、画面上のボタンやリンクをクリックしたりとかの、
あらかじめ決めることが出来ないタイミングで実行されるっていうことですね。
つまりキミの操作によって実行されるってこと。
逆に、同期っていうのは、画面を読み込んでいる時とかの
操作することが出来ないタイミングで・・・ってことになります。
 memo 
"Web における" と限定したのは、他の場面では違った意味になるからです。
例えば、パソコンにおける同期とは、"A" と "B" の2台のパソコンがあり、
その2台に"同一のデータ"を保存してるとします。
パソコン "A" のそのデータを更新した後、パソコン "B" にそのデータを上書きコピーする。
このように両方のパソコンのデータ内容を同じにすることを "同期させる" といいます。

次は、"XMLHttpRequest" を説明します。
"XML"って聞いただけで躊躇ってしまう人の為に言っておくと、
"XMLHttpRequest"は"XML"とはあまり関係ありません。
"XML"を知らなくても十分に使いこなせます。安心してください。

では、どういうものか・・・という説明の前に、
まず、今までのウェブサイトではどうだったかを説明します。
キミはあるウェブサイトを訪れました。
そこにはキミが探していた文章がテキストファイルにされてあるようです。
文章へはリンクが貼られています。
キミは早速リンクをクリックして・・・はい!そこでストップ!
キミが、リンクをクリックしてリンクされているテキストファイルを読み込んでいる時に、
"HttpRequest" っていうのが発生していて、
サーバ上のテキストファイルを取得しています。
その時、一瞬でも画面が"真っ白"になりませんか?
それは画面遷移が発生しているからです。
そして、読み込み中には何も出来ず、真っ白な画面を見つめることしか出来ません。

しかし、"XMLHttpRequest" では、画面遷移を発生させずに
サーバ上のファイルを取得することが出来るのです。
上の例を用いて、もう少し具体的に説明します。
キミはあるウェブサイトを訪れました。
どうやらAjaxを使用しているサイトのようです。
そこにはキミが探していた文章が・・・
以下、略・・・
キミは早速リンクをクリックして・・・はい!そこでストップ!
キミが、リンクをクリックしてリンクされているテキストファイルを読み込んでいる時に、
"XMLHttpRequest" っていうのが発生していて、
サーバ上のテキストファイルを取得しています。
あれ?でも、画面は真っ白になりません。
画面には、"Now Loading..."という文字が表示されています。
そして、現在の画面にテキストファイルの内容が表示されました!
どうですか。
すばらしいでしょう?

え!?
そんなことが出来るわけないって!?

いいえ、出来るんです!
というわけで、軽くサンプルを作ってみました。
非常にシンプルなのでイマイチすごさが伝わらないかもしれませんが、試してみてください。