Ajax

読み:えいじゃっくす / 英語表記:Asynchronous JavaScript and XML

Webブラウザ上のJavaScriptが、ページ全体を読み込み直さずに、サーバと非同期に通信してデータを受け取り、ページの一部だけを書き換える技術。

イマシルちゃんの解説

昔のWebページは、何かボタンを押すたびに、画面全体が真っ白になって、ページを丸ごと読み込み直していたんだ。

Ajaxを使うと、裏でこっそりサーバとやり取りして、変わったところだけを書き換えられるんだよ。
地図をドラッグすると、ページを切り替えずに、次々と周りの地図が出てくるよね。
あれがAjaxの代表的な使い方なんだ!

より深い解説

定義

Ajax(Asynchronous JavaScript and XML)は、ブラウザ上のJavaScriptから、HTTPでサーバにリクエストを送り、応答を待つ間も利用者の操作を止めずに(非同期に)処理を続け、受け取ったデータで、ページの一部(DOM)を書き換える技術の総称である。2005年ごろ、地図サービスやWebメールでの活用をきっかけに広まった。

名前にXMLとあるが、現在は、データの形式として主にJSONが使われる。

従来の方式との違い

従来のWebページAjax
サーバとの通信ページ全体を要求する必要なデータだけを要求する
画面の更新ページ全体を読み込み直す変わった部分だけを書き換える
通信中の操作読み込みが終わるまで待つ操作を続けられる
通信量多い少ない

実現する仕組み

仕組み内容
XMLHttpRequestAjaxを広めた、ブラウザのJavaScriptからHTTP通信を行うための機能
Fetch APIXMLHttpRequestに代わる、新しい通信の機能。Promiseで扱いやすい
DOM操作受け取ったデータで、ページの要素を書き換える
JSONサーバとやり取りするデータの形式

Ajaxの使用例

例内容
地図サービス地図をドラッグすると、ページを切り替えずに、周囲の地図の画像を読み込んで表示する
検索の入力補完文字を入力するたびに、候補をサーバから取得して表示する
無限スクロールページの下までスクロールすると、続きのデータを読み込んで追加する
SPA(シングルページアプリケーション)最初に1つのページを読み込み、その後はAjaxでデータだけをやり取りして画面を切り替える

セキュリティ上の注意

ブラウザには、あるサイトのJavaScriptが、ほかのサイト(オリジン)のデータに自由にアクセスすることを制限する同一オリジンポリシーがある。ほかのオリジンのAPIを呼び出すには、そのサーバがCORS(Cross-Origin Resource Sharing)で許可している必要がある。

マッシュアップとの関係

Ajaxは「ページを切り替えずに表示を更新する」ための技術であり、マッシュアップは「複数のサービスの機能やデータを組み合わせる」ことである。マッシュアップを実現する手段として、Ajaxで外部のWeb APIを呼び出すことはよくあるが、両者は別の概念である。

実際の試験ではここに出る!

この用語が出てくる記事

↑