xrea-banner xreaad

導入

namespace kilrey; / JavaScript / AJAX / 導入

次のページ(非同期)へ

AJAX とは日本語に直せば 非同期通信で XML をやり取りする JavaScript といったところでしょうか。 実際には必要に応じて同期通信や XML 以外の形式も使いますが、 AJAX という響きの良さもあるのか、 ページの読み込み時以外にも通信をする Web サービス一般がこう呼ばれます。

まず従来の Web サービスについて考えてみましょう。 普通はユーザーがフォームから入力を送ったのに対して サーバ側で生成した新しいページを結果として返します。 この場合のレスポンスは静的な html として レイアウトなどの情報も含めて送るのが一般的です。

それに対して AJAX の Web サービスでは ユーザが入力したデータをバックグラウンドで送信します。 サーバ側では入力に対する結果を XML などとして返します。 その結果をブラウザ上の JavaScript が解釈し 現在のページを変化させることでユーザーに応答します。 この場合、通信は一つの GET/POST リクエストに対して この場合のレスポンスはレイアウトなどを含まない データそのままに近いものを送るのが一般的です。

AJAX では通信の回数もレンダリングの回数も多くなりがちですが、 一回にかかる時間が短いのでユーザーを待たせることが少なくなります。 入力の途中から先行して送信することにより さらに待ち時間を減らすという工夫も出来ます。 このように User Interface(UI) の改善に有効なのですが、 ブラウザとサーバを適切に連携させなければならないために プログラムが複雑になるという欠点があります。

その複雑さを少しでも抑えるために Model View Controller(MVC) という設計法が役立ちます。 MVC とはデータ取扱いロジックと UI を分離することにより 設計の見通しを良くし作業の分担を進める手法です。 AJAX ではサーバ側のプログラムが Model 、 ブラウザが表示する html+css が View 、 JavaScript が Controller と明確に分離出来ます。 旧来の Web サービスではサーバ側で View も扱っていたことを考えると むしろ AJAX の方が見通しが良いくらいかもしれません。 (Wikipedia - Model View Controller)

ただし、 AJAX は既存の技術を上手く流用して 優れたユーザ体験を作り出したという類のものです。 それぞれの技術にはあまり新しいところはありませんし、 専用に作られたものと比べると洗練さにかけるところもあります。 特にブラウザ上で表現しなくてはならないという点が 互換性が低かったりなどの問題を引き起こしています。 対象のユーザが限られているのならば 専用クライアントを使った方が良いかもしれません。

次のページ(非同期)へ