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

Asynchronous JavaScript + XML

pointこの用語のポイント

point実装方式の呼び名だよ

pointJavaScriptを使うよ

point非同期通信をするよ

point「Ajax」と表現されるのが一般的だよ

スポンサーリンク

簡単に書くよ

Asynchronous JavaScript + XML(読:エイシンクロナス・ジャヴァスクリプト・アンド・エックスエムエル)とは

いわゆる「Ajax」のこと。
用語の中身としては

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


image piyo

詳しく書くよ

最初に留意事項です。
Ajax(エイジャックス)」と言われて「あぁ、アレのことね」と分かる方は最後まで読む必要ありません。
Ajaxの正式名称(?)が「Asynchronous JavaScript + XML」です。
Asynchronous JavaScript + XML」を省略したのが「Ajax」ね。

Asynchronous JavaScript + XML(エイシンクロナス・ジャヴァスクリプト・アンド・エックスエムエル)

※「Asynchronous JavaScript + XML」を何となく日本語にすると「非同期JavaScript+XML」となります。[詳細]

以上が「Ajax」の意味を知っている人向けの説明です。

「Ajaxって何?美味しいの?」な人は、このまま読み進めてください。
用語の中身について説明します。

ちょっと休憩2

それでは、いってみましょう。
まずは予備知識として

ホームページが表示される流れ
JavaScript
XML


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

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

Asynchronous JavaScript + XML(エイシンクロナス・ジャヴァスクリプト・アンド・エックスエムエル)2

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

Asynchronous JavaScript + XML(エイシンクロナス・ジャヴァスクリプト・アンド・エックスエムエル)3

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

Asynchronous JavaScript + XML(エイシンクロナス・ジャヴァスクリプト・アンド・エックスエムエル)4

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

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」の説明を ご覧ください。

Asynchronous JavaScript + XML(エイシンクロナス・ジャヴァスクリプト・アンド・エックスエムエル)5

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

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

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

Asynchronous JavaScript + XML(エイシンクロナス・ジャヴァスクリプト・アンド・エックスエムエル)6

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

Asynchronous JavaScript + XML(エイシンクロナス・ジャヴァスクリプト・アンド・エックスエムエル)7

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

Asynchronous JavaScript + XML(エイシンクロナス・ジャヴァスクリプト・アンド・エックスエムエル)8

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

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

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

Asynchronous JavaScript + XML(エイシンクロナス・ジャヴァスクリプト・アンド・エックスエムエル)9

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

Asynchronous JavaScript + XML(エイシンクロナス・ジャヴァスクリプト・アンド・エックスエムエル)10

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

Asynchronous JavaScript + XML(エイシンクロナス・ジャヴァスクリプト・アンド・エックスエムエル)11

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

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

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

Asynchronous JavaScript + XML(エイシンクロナス・ジャヴァスクリプト・アンド・エックスエムエル)12

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

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

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

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

Asynchronous JavaScript + XML(エイシンクロナス・ジャヴァスクリプト・アンド・エックスエムエル)13

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

Asynchronous JavaScript + XML(エイシンクロナス・ジャヴァスクリプト・アンド・エックスエムエル)14

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

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

Asynchronous JavaScript + XML(エイシンクロナス・ジャヴァスクリプト・アンド・エックスエムエル)15

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

Asynchronous JavaScript + XML(エイシンクロナス・ジャヴァスクリプト・アンド・エックスエムエル)16

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

Webブラウザ←→Webサーバ

のやり取りです。

Asynchronous JavaScript + XML(エイシンクロナス・ジャヴァスクリプト・アンド・エックスエムエル)17

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

JavaScript←→Webサーバ

のやり取りです。

Asynchronous JavaScript + XML(エイシンクロナス・ジャヴァスクリプト・アンド・エックスエムエル)18

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

Asynchronous JavaScript + XML(エイシンクロナス・ジャヴァスクリプト・アンド・エックスエムエル)19

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

Asynchronous JavaScript + XML(エイシンクロナス・ジャヴァスクリプト・アンド・エックスエムエル)20

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

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

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

が「Asynchronous JavaScript + XML」です。
上でも書きましたが、一般的には「Ajax」と表現されます。
※本ページでも以降は「Ajax」と表現します。

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

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

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

程度ですよ、多分。

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

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


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


image piyo2

一言でまとめるよ

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

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

おまけ

■訳してみるよ

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

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

となります。




書籍画像
わわわ説明術コラム
宣伝だよ
わかばちゃんとつくって、壊して、直して学ぶ NewSQL入門
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本
体系的に学ぶ 安全なWebアプリケーションの作り方 第2版 脆弱性が生まれる原理と対策の実践