BLOG

非同期処理メモ

おはようございます。

昨日彼女から「鬼滅の刃まだみてないの?」的なマウントをとったりするようなことを「キメハラ」って言うみたいやで。と聞いて、もうなんでもありやなと思ってしまったどうもハヤトワンです。

さて、今日はもともと抽象的な概念としては知っていたが、具体的にコードを書けるかで言えばそうではなかった

「非同期処理」

について触れていこうと思います。

最近になってようやくちゃんと向き合おうと思ってる次第でございます。

ここにアウトプットしながら知識の定着化、復習も兼ねてやります。

何回かにかけて書こうと思います。

非同期処理ってなんすか

まず非同期処理の前に、同期処理を知る必要があります。

この同期処理っていうのは

プログラムの実行方式のことで、通常プログラムは上から下に向かって実行されていきます。

要するに書いた順番通りに処理が進む。

問題は重たい処理があると、そこで待ち時間が生まれてしまうところです

それに対して非同期処理は

外部のサーバと通信できる関数を呼んだ後に、レスポンスが返ってくるまでに一旦別の処理を進めて、レスポンスが返ってき次第、呼び出したところへ値を返してあげる

はい、ちょっとわからないですよね。笑

ざっくりした例で言うと

同期処理は

1件、1件タスクをこなしていくスタイルで、そのタスクに問題が発生したらそれが解決するまではどうしようもできない、シングルタスク野郎

非同期処理は

1つのタスクを進めている途中でも、合間をぬって別のタスクもこなせるマルチタスク野郎

的なイメージ?笑

正確にいうと非同期処理の説明はこんな感じです。

非同期処理(Ajax:Asynchronous JavaScript + XMLの略)は

Webブラウザ上で動くJavascriptを使って

サーバからXMLデータ(今はデータが軽量なJSONが主流)を取得して

取得したデータをWebページに動的に反映する技術

っていう感じです。

具体的なアプリでいうと

Google Mapが非同期処理の代表です。

あれって拡大縮小してもその分だけ情報を読み込んで地図を表示させてくれるじゃないですか。

あれが同期処理だったら、その地図全体をまるごと再読み込みする必要がでてきます。

やから再読込してる間はページ真っ白的な。(まあローディングとかでごまかせることはできそうやけど)

なので圧倒的不便さ。

非同期処理だと、必要なところだけ読み込んでくれるので、いちいちページが真っ白になることなく、Google Mapのような感じで便利に使える。

といった感じですかね。

今日は概念的な感じの話でした。

それでは今日も良い1日を!