AJAX非同期データ通信

5771 ワード

ルーターで頭を爆発させ、🤓🤓🤓🤓🤓🤓
話題を変えてajax通信を勉強したいです.今週は集中できないようです.

非同期プログラミングとは?


🟦 同期と非同期


✔同期プログラミング


まずjavascriptは同期されます.関数と変数が宣言された瞬間に、昇格してゲルに含まれることしかできません.これは簡単と考えられますが、スムーズなプログラミングを効率的に行うには限界があります.

✔非同期プログラミング


非同期プログラミングとは、単純に言えば、必ずしも1行1行の順序で実行されないコードを読み取るプログラミングである.やるべきことは委任と待機の仕方と言える.

✔JavaScriptと非同期


JavaScriptが置かれている環境では、Web APIはJavaScriptエンジンとともに動作します.ここでは、タイマーを使用したり、AJAXにhttpリクエストを送信したり、ファイルからデータを読み出したりするなど、時間のかかるタスクを実行します.
これらのタスクを順番に同期して実行すると、ブラウザエンジンの実行時にも効率が低下する可能性があります.したがってjavascriptからデータをロードしたり、意図的に遅延したりする場合は、非同期テクニックが使用されます.

🟦 JavaScriptの非同期プログラミング


🔸 JavaScriptで非同期テクニックを使用します。

  • AJAXコールを含むネットワーク通信
  • ファイルの読み書きなどのファイルシステムタスク
  • 時間遅延機能を意図的に使用する.
  • 🟦 スキャンと非同期実行の関係


    非同期プログラミングで注意すべき部分はスキャンです.これは、変数の有効範囲がスキャンによって異なるためです.
    function count(){
       let i;
       for(i= 0 ;i<5 ; i++){
        setTimeout(() => {
          console.log(i === 0 ? 'finish':i+1)
        },(i+1) * 1000)
       }
     }
     count()
     // 5가 6번 찍힘.
    ここで5回撮られた理由は変数iの位置にある.
    for文が終了するとsettimeOutが実行され、for文の結果値に基づいてiは5であり、その値はiに含まれる.
    次にsettimeOutコールバック関数を実行し,5回撮影した.
    ここでブロックスキャナiの変数範囲を変更すると、通常
    1.2.3.4.5 Finishが撮れます
     function count(){
       for(let i= 0 ;i<5 ; i++){
        setTimeout(() => {
          console.log(i === 4 ? 'finish':i+1)
        },(i+1) * 1000)
       }
     }
     count()
    ソース/コメント
  • https://www.yalco.kr/21_async/
  • https://velog.io/@two_jay/callback-%EA%B3%BC-%EB%B9%84%EB%8F%99%EA%B8%B0-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D[非同期要因]
  • https://helloworldjavascript.net/pages/285-async.html[非同期プログラミング-パーティション整理を行う]