ホームページ > 記事 > ウェブフロントエンド > JavaScriptの非同期とはどういう意味ですか?
JavaScript では、非同期とは、コードの順序どおりに実行されないことを意味します。非同期プロセスの実行は、元のシーケンスとの順序関係を持たなくなります。プログラムの実行順序は、プログラムの実行順序と矛盾します。非同期とは、タスクを完了するためにメインスレッドからサブスレッドを起動することを意味すると理解できます。
このチュートリアルの動作環境: Windows 10 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。
JavaScript の非同期とはどういう意味ですか?
非同期の概念
非同期 (非同期、 async) 同期(sync)とは逆の概念です。
私たちが学ぶ従来のシングルスレッド プログラミングでは、プログラムの実行は同期です (同期とは、すべてのステップが同時に実行されることを意味するのではなく、ステップが制御フロー シーケンスで順番に実行されることを意味します) )。非同期の概念は同期を保証するものではなく、非同期処理の実行は元のシーケンスと順序関係を持たなくなります。
簡単に理解すると、同期はコードの順序で実行され、非同期実行はコードの順序ではなく、非同期実行の方が効率的です。
上記は非同期の概念の説明です。次に、非同期を一般的な方法で説明しましょう。非同期とは、メインスレッドからサブスレッドを起動してタスクを完了することです。
非同期プログラミングを使用する場合
フロントエンド プログラミング (場合によってはバックエンドでも) では、次のような問題を扱います。 1 1 の結果の計算など、一部の短く高速な操作は、多くの場合、メインスレッドで完了できます。スレッドとして、メインスレッドは同時に複数のリクエストを受け入れることができません。したがって、イベントが終了しない場合、インターフェイスは他のリクエストを処理できなくなります。
ボタンができました。その onclick イベントを無限ループに設定すると、ボタンが押されたときに Web ページ全体が応答しなくなります。
この状況を回避するために、大きなファイルの読み取りやネットワーク要求の実行など、ユーザーが気づくまでに時間がかかる可能性のある処理を完了するために子スレッドを使用することがよくあります。子スレッドはメインスレッドから独立しているため、ブロックされてもメインスレッドの動作には影響しません。ただし、サブスレッドには制限があり、一度起動するとメインスレッドとの同期が失われるため、終了を判断することができず、サーバーからの情報の処理など、終了後に何か処理が必要な場合はマージできません。それをメインスレッドに追加します。
この問題を解決するために、JavaScript の非同期操作関数では、コールバック関数を使用して非同期タスクの結果を処理することがよくあります。
非同期リクエストと JS の非同期ロード
非同期リクエスト: 送信者はデータを送信した後、受信者が応答を送り返すのを待たずに、次のデータパケットの通信をウェイに送信します。
例: ユーザーが情報を入力すると、その情報は自動的にサーバーに送信され、サーバーはクライアントに応答します。このプロセス中、ユーザーはまだフォーム情報を入力しています。これにより、ユーザーの時間が節約され、ユーザー エクスペリエンスが向上します。
非同期ロード: デフォルトの js は同期的にロードされます (ここでの「ロード」は解析と実行として理解できます)。非同期 JS とは、この JS コードをロードしながら、次の JS を実行し続けることを意味します。
例: このコードを取り上げます。
<script type="text/javascript" src='http://china-addthis.googlecode.com/svn/trunk/addthis.js'></script> <script type="text/javascript" src='http://libs.baidu.com/jquery/2.0.0/jquery.min.js'></script> <script type="text/javascript"> console.log('hello world'); </script>
私たちの要件は非常に単純のようです。ページの読み込み中にコンソールに文字列を出力できます。もっとカジュアルに話しましょう。 , Google が提供する最初の js をリクエストしながら、次の js を実行し続ける、つまり js の非同期読み込みを実現します。
関連する推奨事項: JavaScript 学習チュートリアル
以上がJavaScriptの非同期とはどういう意味ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。