今日は同期 Javascript と非同期 Javascript について書きます。
まず定義です。
同期タスクは順番に発生します。つまり、次のジョブに進む前に最初のジョブを完了する必要があります。逆に、非同期ジョブは任意の順序で実行したり、同時に実行したりすることもできます。
非同期はノンブロッキング アーキテクチャであるため、あるタスクの実行は別のタスクに依存しません。タスクは同時に実行できます。
同期はブロッキング アーキテクチャであるため、各操作の実行はその前の操作の完了に依存します。各タスクでは、次の反復に進む前に回答が必要です。
基本的に、JavaScript は、Web ページをインタラクティブにするために使用されるシングルスレッドのブロッキング同期スクリプト言語です。
シングルスレッドでブロッキングであるということは、JavaScript が一度に 1 つのタスクしか実行できないことを意味します。つまり、プログラムはタスクを順番に実行し、次のタスクが開始される前に各タスクが完了する必要があります。
JavaScript は本質的に同期ですが、非同期プロセスの恩恵を受けます。 JavaScript 関数の実行時間が長いと、関数が返されるまでユーザー インターフェイス (UI) またはサーバーが応答しなくなり、ユーザー エクスペリエンスがあまり良くなくなる可能性があります。
ただし、オンライン支払いを行う場合など、ユーザーがプログラミングをブロックすることで利益を得られる場合もあります。
JavaScript の利点は、シングルスレッドとマルチスレッド、ブロッキングとノンブロッキングの両方の長所を提供できることです。この柔軟性により、プログラマーは、同期操作用と非同期操作用の 2 つのプログラミング言語ではなく、1 つのプログラミング言語でコードを作成できます。
非同期プログラミングは、関数が呼び出されてからその関数の値が返されるまでの遅延時間を短縮することで、ユーザー エクスペリエンスを向上させます。非同期プログラミングは、現実世界におけるより高速でシームレスなフローに変換されます。
たとえば、ユーザーはアプリを高速に実行することを望んでいますが、API からデータを取得するには時間がかかります。このような場合、非同期プログラミングによりアプリ画面の読み込みが速くなり、ユーザー エクスペリエンスが向上します。
一方、同期プログラミングは開発者にとって有利です。同期プログラミングはコーディングがはるかに簡単です。これはすべてのプログラミング言語の中で十分にサポートされており、デフォルトのプログラミング方法であるため、開発者はバグの扉を開く可能性のある新しいことの学習に時間を費やす必要はありません。
非同期プログラミングと同期プログラミングのどちらを選択するか
どちらのアプローチを採用するかを決定するときは、非同期プログラミングは適応性があり、同期プログラミングは厳密であることを考慮してください。
非同期プログラミング はマルチタスクであり、1 つの To Do から別の To Do に移動し、各タスクが完了するとシステムに警告します。同期プログラミングは、単一トラックの考え方で機能し、厳格な順序で一度に 1 つのタスクをチェックします。
非同期プログラミングを使用すると、より多くのことを同時に行うことができ、通常は、楽で素早い読み込みフローを提供することでユーザー エクスペリエンスを向上させるために使用されます。
同期プログラミングは、リアクティブ システムで最もよく利用されます。同期は開発者にとってコーディングが簡単で、あらゆるプログラミング言語で認識されますが、同期はリソースを大量に消費するため、処理速度が遅くなる可能性があります。
以下では、同期プログラミングと非同期プログラミングをよりわかりやすく説明するためにいくつかの例を示します。
同期プログラミングの例
上記のコードの出力は次のとおりです。
日産 2003 真
{ 名前: 'Nissan'、年式: 2003、良好: true }
アデダモラ 33 偽
神と呼ばれた男300真
上記のコード スニペットでは、オブジェクトを宣言し、値をキーに割り当てるだけでした。
与えられた出力が上で記述したコードと一致していることがわかります。これが意味するのは、宣言された最初のオブジェクトにエラーがある場合、残りのコードは同期的に実行されることになっているため、実行されないということです。
非同期プログラミングの例
コードの出力は次のとおりです。
1 つ
3つ
4
ファイルが正常に追加されました
新しいファイルが作成されました
2つ
これは、タスクが順番に実行されず、また、あるタスクが別のタスクの終了を待ってから実行されないため、非同期プログラミングの例です。
理想的には、上記で記述されたコードから、1 は 2 の前に、2 は 3 と 4 の前にある必要があります。また、追加する前に新しいファイルが作成されるはずですが、各タスクは実行にかかった時間に基づいて実行されました。
したがって、非同期プログラミングではより多くのことを同時に実行できるという主張がさらに強固になります。
以上が同期 VS 非同期 JavaScriptの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。