「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

Ajax

pointこの用語のポイント

point実装方式の呼び名だよ

pointJavaScriptを使うよ

point非同期通信をするよ

point「Asynchronous JavaScript + XML」の略だよ

スポンサーリンク

簡単に書くよ

Ajax(読:エイジャックス)とは

JavaScriptの今風の呼び方(嘘)
真面目に書くと

「JavaScriptを使って非同期通信してあれこれ」をふんわりと表現したもの
です。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として

ホームページが表示される流れ
JavaScript(ジャヴァスクリプト)
XML


について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

あなたがホームページを見ようとすると、まず、ホームページを見るときに使うソフトWebブラウザからホームページのファイルが置いてあるコンピュータWebサーバに対して「このページをおくれ」と お願いが出されます。

Ajax

そのお願いに対して、WebサーバさんからWebブラウザさんに「ほれ、そのページだよ」と お返事がきます。

Ajax2

お返事を受け取ったWebブラウザさんは、受け取った内容(ホームページのファイル)を画面上に表示してくれます。

Ajax3

これが、ホームページが表示されるときの流れです。

JavaScriptは「ホームページに動きをつけるときに使われる(簡易的な)プログラミング言語」です。
ホームページを作るときの技術のひとつとして、HTMLCSSとセットで出てくることが多いです。

XMLは「ファイルの書き方ルールのひとつ」です。
例えば

<?xml version="1.0" encoding="Shift_JIS" ?>
<staff>
    <member>
        <name>ピヨ太</name>
        <position>社長</position>
        <age>40代のおっさん</age>
    </member>
    <member>
        <name>ピヨ子</name>
        <position>営業部長</position>
        <age>永遠の美少女</age>
    </member>
</staff>


みたいな書き方を「XML」と言います。
XMLの詳細が知りたい方は、用語「XML」の説明を ご覧ください。

Ajax4

今回は「やり取りするデータの形式はXML形式だよ」という説明で出てくるだけです。
細かい部分は知らなくても大丈夫です。

以上を踏まえて、本題に入ります。

繰り返しになりますが、ホームページを表示するときには、まずパソコンさん(の中にいるWebブラウザさん)からWebサーバさんに「このページをおくれ」と お願いが出されます。

Ajax5

そのお願いに対して、Webサーバさんからパソコンさんに「ほれ、そのページだよ」と お返事がきます。
お返事には、ホームページを表示するために必要なHTMLファイルCSSファイル画像ファイルJavaScriptファイルなどがくっついています。

Ajax6

パソコンさんがそれらのファイルを受け取ると、受け取ったファイルたちをWebブラウザさんがあれこれして画面に表示します。

Ajax7

これで無事にホームページが表示されました。

ここでピヨ太君がページ上にあるボタンを押したとしましょう。
このボタンはリンクと同じです。
押すと別のページに移動します。

押すと別のページに移動するボタンを押すと、パソコンさんからWebサーバさんに「今度はこのページをちょうだいよ」なお願いが行きます。
「移動先のページのファイルをくれよ」と依頼を出すのです。

Ajax8

その後の流れは先程と同じです。
Webサーバさんからパソコンさんに「ほれ、これがそのページだよ」と お返事がきます。
そのお返事には、移動先のページを表示するために必要なHTMLファイルやCSSファイル、画像ファイルやJavaScriptファイルなどがくっついています。

Ajax9

パソコンさんがそれらのファイルを受け取ると、受け取ったファイルたちをWebブラウザさんがあれこれして画面に表示します。
このとき、さっきまで表示していた画面の内容は消えます。
新しく受け取ったファイルをあれこれした画面で置き換わっちゃうのです。

Ajax10

これがホームページを見るときの一般的な流れです。

さて、ここでJavaScriptさんに登場してもらいましょう。

JavaScriptさん(正確には、中身がJavaScriptさんで書かれたファイル)はHTMLファイルさんたちと一緒にパソコンに送り込まれ、パソコンさんの中でお仕事をします。

Ajax11

実は、このJavaScriptさん、ちょっと特殊な能力を持っていましてね。
人間様には見えないところで、こっそりWebサーバさんとやり取りできるのです。
しかも、他の処理の邪魔をしないようにすることが可能です。
専門用語で「非同期通信」と呼ばれる形でWebサーバさんとやり取りできます。

この力を使うと、例えばこんなことができます。

先程と同じようにピヨ太君がページ上にあるボタンを押しました。
このボタンは、押すと別のページに移動するボタン……みたいなものですが、ちょっと違います。
JavaScriptさんがWebサーバさんに「おい、新しいページをくれよ」と、お願いを出してくれるボタンです。

このボタンを押すと、JavaScriptさんからWebサーバさんに「このページをちょうだいよ」なお願いが行きます。

Ajax12

そうすると、WebサーバさんからJavaScriptさんに「ほれ、これがそのページだよ」と お返事がきます。

Ajax13

なんか、さっきと同じっぽいですね。
何が違うのでしょう?

先程の例では、Webブラウザさんが受け取ったファイルたちをあれこれして画面に表示しました。
そのため画面全体が新しいページの内容に置き換わりましたよね。

Ajax14

今度はファイルを受け取ったのはJavaScriptさんです。
この受け取ったファイルの中身をどうするかはJavaScriptさんに委ねられます。
後は作り方次第ですが、例えば新しく受け取ったファイルの中身を今表示している画面に表示することもできます。
画面全体を再表示することなく、今表示している内容を新しいページの内容に書き換えられるのです。

Ajax15

最初の例では、Webサーバさんから新しいページをもらってくる作業をWebブラウザさんがやりました。

Webブラウザ←→Webサーバ

のやり取りです。

Ajax16

後の例では、Webサーバさんから新しいページをもらってくる作業をJavaScriptさんがやりました。

JavaScript←→Webサーバ

のやり取りです。

Ajax17

Webブラウザさんが新しいページをもらってきたときは、ページ全体を書き換えなくてはいけませんでした。
画面上の古い内容を全部消して新しい内容で置き換えることになります。

Ajax18

JavaScriptさんが新しいページをもらってきたときは、JavaScriptさん次第です。
ページの一部だけを書き換えることもできますし、全体を書き換えることもできます。

Ajax19

なんか、JavaScriptさんに新しいページをもらってきてもらった方が、いろいろ融通が利きそうですね。

大分、話が遠回りしましたが、この

JavaScriptさんに新しいページをもらってきてもらおうぜー!

が「Ajax」です。

Asynchronous JavaScript + XML(エイシンクロナス・ジャヴァスクリプト・アンド・エックスエムエル)」の略で「Ajax」ね。
気が向いたら、覚えてあげてください。

Ajax20

Asynchronous(エイシンクロナス)の意味は「非同期」です。
直訳すると「非同期JavaScript+XML」でしょうか。
「JavaScriptの非同期通信を使って、XML形式のデータをWebサーバからもらってくるぜー!そうすると、なんかいろいろできて便利だぜー!」がAjaxです。

「Ajax」自体が何かの技術や言語を指すわけでは ありません。
ご注意ください。
あくまで実装方式の呼び名です。
ノリとしては

JavaScriptで非同期通信できたよね?それを使って、XML形式のデータをサーバとやり取りしたら、なんかいろいろできるんじゃね?良いね!でも「JavaScriptで非同期通信してXMLデータを~」って、なんか長ったらしくて呼びにくいな。よし!「JavaScriptで非同期通信してXMLデータを~」のことを「Ajax」って呼ぶことにしよう!

程度ですよ、多分。

とはいえ、そこまで細かく考えて「Ajax」っていう表現を使っている人は多くないと思いますけどね。

・JavaScriptを使うぜ!
・サーバと非同期通信するぜ!


さえ押さえておけば事足りると思います。

ちなみに「Ajax」の読みは「エイジャックス」が一般的です。
「アジャックス」と読む人もいますが、どちらが正しいかで喧嘩しないでくださいね。
個人的には「セリエA」を「セリエ・エー」と呼ぶか「セリエ・アー」と呼ぶかくらいどちらでも良いと思っています。


image piyo2

一言でまとめるよ

まぁ「Ajax」って単語が出てきたら「JavaScriptを使って非同期通信をするんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像021
書籍画像043

おまけ

■訳してみるよ

「Ajax(エイジャックス)」は「Asynchronous JavaScript + XML(エイシンクロナス・ジャヴァスクリプト・アンド・エックスエムエル)」の略です。
「asynchronous(エイシンクロナス)」の意味は「非同期」とかです。
「javascript(ジャヴァスクリプト)」はプログラミング言語の「JavaScript」です。
「xml」は「eXtensible Markup Language(エクステンシブル・マークアップ・ランゲージ)」の略です。
「extensible(エクステンシブル)」の意味は「広げられる」とか「伸ばせる」とかです。
今回は「拡張できる」と解釈してください。
「mark(マーク)」の意味は「印」とかです。
「up(アップ)」の意味は「上へ」とかです。
「mark up(マーク・アップ)」で「印をつける」的な意味になります。
「language(ランゲージ)」の意味は「言語」とか「言葉」とかです。
何となく くっつけると

非同期のJavaScript+拡張できる印を付ける言語

となります。




書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本
インフルエンサー六法 活動開始から情報発信、収益化までに潜むトラブル対策50
エンジニアのための生成AI入門 はじめての生成AIアプリ開発からエージェント開発まで