ホームページ > 記事 > ウェブフロントエンド > ネイティブJSの非同期とシングルスレッドの詳細な説明
非同期とは何ですか (同期と対比)? この記事では主にネイティブ JS の非同期とシングルスレッドについて詳しく説明します。お役に立てれば幸いです。
//异步 console.log(100); setTimeout(function(){ console.log(200); },1000); console.log(300); //同步 console.log(100); alert(200); console.log(300);//同步会阻塞等待
非同期の場合
-- 待機が発生する可能性がある場合
-- 待機プロセス中、アラートのようにプログラムの実行をブロックすることはできません
-- したがって、すべての「待機状況」には非同期が必要です
フロントエンド非同期タスクを使用するシナリオ
スケジュールされたタスク:
setTimeout/setInterval console.log(100); setTimeout(function(){ console.log(200) },1000); console.log(300); //同步 console.log(100); alert(200); console.log(300); 网络请求:ajax请求,动态<img>加载 //ajax console.log('start'); $.get('xxx',function(){ console.log(data); }) console.log('end');//startenddata //img console.log('start'); var img = document.creatElement('img'); img.onload = function(){ console.log(loaded); } img.src = 'xxxxxxxxxxxxxxxx'; console.log('end')//startendloaded 事件绑定 console.log('start'); var btn1 = document.getElementById('btn1'); btn1.addEventListener('click',function(){ console.log('clicked'); }) console.log('end') 异步和单线程 同步和异步的区别?分别举一个同步和异步的例子 同步会阻塞代码执行,而异步不会 alert是同步,setTimeout是异步 一个关于setTimeout的笔试题 console.log(1); setTimeout(function(){ console.log(2) },0); console.log(3); setTimeout(function(){ console.log(4); },1000); console.log(5); //13524
フロントエンドで非同期タスクを使用するシナリオとは何ですか?
スケジュールされたタスク: setTimeout、setInterval
ajax リクエスト、img 読み込み
イベント バインディング
関連する推奨事項:
以上がネイティブJSの非同期とシングルスレッドの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。