什麼是異步(對比同步),本文主要和大家分享原生JS異步和單線程詳解,希望能幫助大家。
//异步 console.log(100); setTimeout(function(){ console.log(200); },1000); console.log(300); //同步 console.log(100); alert(200); console.log(300);//同步会阻塞等待
何時需要非同步
--在可能發生等待的情況
#--等待過程中不能像alert一樣阻塞程式的執行
# --因此所有的「等待的情況」都需要非同步
前端使用非同步的場景
定時任務:
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中文網其他相關文章!