首頁 > web前端 > js教程 > 原生JS異步和單線程詳解

原生JS異步和單線程詳解

小云云
發布: 2018-03-07 14:40:50
原創
1863 人瀏覽過

什麼是異步(對比同步),本文主要和大家分享原生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(&#39;start&#39;);
$.get(&#39;xxx&#39;,function(){
console.log(data);
})
console.log(&#39;end&#39;);//startenddata
//img
console.log(&#39;start&#39;);
var img = document.creatElement(&#39;img&#39;);
img.onload = function(){
console.log(loaded);
}
img.src = &#39;xxxxxxxxxxxxxxxx&#39;;
console.log(&#39;end&#39;)//startendloaded
事件绑定
console.log(&#39;start&#39;);
var btn1 = document.getElementById(&#39;btn1&#39;);
btn1.addEventListener(&#39;click&#39;,function(){
console.log(&#39;clicked&#39;);
})
console.log(&#39;end&#39;)
异步和单线程
同步和异步的区别?分别举一个同步和异步的例子
同步会阻塞代码执行,而异步不会
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非同步程式設計

幾個JavaScript非同步載入相關問題

#單執行緒JS執行題詳#

以上是原生JS異步和單線程詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板