同期(Synchronous)と非同期(Asynchronous)とAJAXとWeb APIについて
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