Ajaxってなに?
Ajaxってなに?
Ajaxってなんやねんってなったので調べてまとめてみました
Ajaxとは
Ajaxとは、AsynchronousとJavaScriptに、XMLを組み合わせて作られた造語です。非同期通信を、「JavaScriptの技術で実行すること」を指します。
Ajaxを理解するには同期通信と非同期通信を理解する必要があるらしい
※[JavaScriptとは?] https://zenn.dev/yuk1r97/articles/9c81d415d3d7cc
同期通信と非同期通信の仕組みは?
同期通信と非同期通信も、どちらも「サーバへの通信方法」として使われる言葉。
例えば、ユーザーがブラウザを通して「Webサイトを閲覧しよう」とした場合、まずサーバに対して「HTTPリクエスト」をします。これに対してサーバ側は、受けたリクエストに対してレスポンスを返し、ユーザーのブラウザにWebページが表示される仕組みです。
同期通信は、端的に言えば「この一連のタスクを順序通りに行う方法」となります。リクエストに対し、レスポンスの処理が完了するまで、「ユーザーは新たな操作を行うことができません」。処理の完了を待つ必要がある分、「通信に時間がかかりやすい」という特徴があります。より簡単に言えば、キャッチボールのように通信が行われるのが同期通信なのです。
一方の非同期通信は、同期通信とは反対に「タスクの順序を無視する方法」となります。サーバ側がレスポンスの処理を行っている最中でもユーザーは新たな操作ができるので、スムーズな形でインターネット通信を行うことができます。わかりやすく言えば「さまざまな処理を並列に行える通信方法」という認識でも良いでしょう。
つまり非同期通信は
ページの再読み込みがない
1つの処理が終わるまで待つ必要はなく、他の操作をする事が出来る
と言う特徴があるらしい。
次にAjaxのx、XMLについて調べる
XMLとは?
XMLとは「Extensible Markup Language」の略で、日本語では「拡張可能なマークアップ言語」と訳されます。特定の企業が提供している技術ではなく、インターネット上で使用される各種技術の標準化推進団体である、W3C(World Wide Web Consortium)によるオープンな規格です。
XMLはマークアップ言語らしい、ではその特徴は?
XMLの特徴
データの意味が分かりやすい
拡張性が高い
あらゆるコンピュータシステムへ適応可能
これだけでは分かりにくいが掘り下げるのはまた今度...
ではHTMLとの違いは?
HTMLとXMLの違い
語感もよく似たXMLとHTML。どちらもマークアップ言語のひとつです。初心者にとっては混同しがちな2つの言葉ですが、両者の用途はまったく違います。
HTMLとは「Hyper Text Markup Language」の略です。Webページを記述するための表用言語で、XMLと同じく文章中の文字列をタグで挟むことで、Webページに装飾を施すのが目的です。簡単にいうと、人間に情報をわかりやすく表示するための言語といえます。
一方のXMLは、データ記述用の言語です。文書中のデータをわかりやすくしたり、データを交換したりできます。マシンに情報をわかりやすく、効率よく伝えるための言語といっても良いでしょう。
HTMLを使ってデータを記述し、見た目はきれいに整理されていても、マシン側では文章の意味を理解できません。しかし、XMLを使って文章中のデータの要素名や属性を定義することで、マシン側にデータの重要度(大小関係など)を認識させられます。
役割の違うXMLとHTMLですが、両者を連携させることで効率的なシステム運用を行えます。例えば、XMLでデータを格納・管理したあと、HTMLに変換・表示することも可能です。併用することでそれぞれの苦手な点を補い合い、データをさらに便利に扱うことができます。
つまりまとめると
HTMLはWebページを記述するための表示用言語で、Webページに装飾を施すし人間に情報をわかりやすく表示するための言語。
一方のXMLは、データ記述用の言語で、文書中のデータをわかりやすくしたり、データを交換したりできる。マシンに情報をわかりやすく、効率よく伝えるための言語。
と言うことらしい
最後に
「JavaScriptの非同期通信を使って、XML形式のデータをWebサーバから貰ってくるぜー!そうすると、なんかいろいろできて便利だぜー!」っていうのがAjax。
「Ajax」自体が何かの技術や言語を指すわけではなくあくまで実装方式の呼び名らしい。
ここまで調べて書いてきたが
JavaScriptを使って非同期通信をするんだな~
って感じみたい...!!
ITの用語ってムズカシイの多いけどまた一つかしこくなった気がする(笑)
また明日からjsの学習頑張っていこうと思いました!(まる)
おしまい
Discussion