同期(Synchronous)と非同期(Asynchronous)とAJAXとWeb APIについて

2021年3月12日JavaScript

JavaScriptの同期(Synchronous)と非同期(Asynchronous)とAJAXとWeb APIについて、基礎的な部分をまとめました。

同期(Synchronous)と非同期(Asynchronous)

同期的な処理は、ラインごとに実行されます。 それぞれのラインがその前のコードが実行が終わるのを待っています。 これをブロッキングといいます。(blocking) 例えば、alert()などがとてもわかりやすい例です。 アラートが出た後、OKをクリックしないとそのあとの処理が実行されません。 問題となるのは、とても重たい処理を行うコードがあった場合です。その場合でも、それを待ってから後が実行されます。 非同期的な処理は、たとえば、setTimeoutなどがそうです。 設定した時間が経過した後に、処理が実行されますが、setTimeoutはバックグラウンドで実行されて、その間、その下にあるコードは実行されていきます。 これをノンブロッキング(non-blocking)といいます。 その非同期の中でも代表的な処理がAJAXです。

AJAXについて

AJAXはAsynchronous JavaScript And XMLの略で、リモートのWebサーバーに非同期的にアクセスすることができます。 AJAXコールで動的にWebサーバーからデータをリクエストすることができます。 AJAXを利用することで、クライアント(ユーザー側)がリクエストしたものを、Webサーバー側(多くはWeb API)がレスポンスを返します。

APIについて

APIはApplication Programming Interfaceの略で、ソフトウェアのかたまりのようなもので、 アプリケーションがコミュニケーションがとれるように他のソフトウェアに使われます。 たとえば、JavaScriptには、DOM APIやGeolocation APIなどがあります。 また、classを使って自分でAPIを作ることもできます。 AJAXにかかわるとても大事なAPIが、online APIです。 online APIはサーバー上で動いているAPIで、データをリクエストしたりレスポンスを返したりします。 そして、多くの場合、このonline APIのことを、Web APIや単にAPIと呼ぶ人が多いです。 JavaScirptでもNode.jsを利用することで、自分でWeb APIを作成することができます。 そして、このWeb APIにはサードパーティ製のものがたくさんあります。
  • 天気のデータを取得するAPI
  • フライトデータを取得できるAPI
  • 通貨の両替のAPI
  • グーグルマップのAPI
  • 国のデータのAPI
などなど、ほかにもたくさんのものがあり、多くの場合無料で利用することができます。

AJAXのデータフォーマットについて

AJAXは名前にXMLが入っている通り、XMLというデータフォーマットで作られていました。 しかし、最近では、JSONというJavascriptのデータ形式が主流になっています。その方がデータ転送が容易なためです。 そのため、XMLデータフォーマットではありませんが、AJAXという名前だけが残っています。

JavaScript

Posted by devsakaso