JS深入-异步和单线程


同步与异步

同步任务:在主线程上排队执行的任务,只有前一个任务执行完毕,才能执行后一个任务
异步任务:不进入主线程,而进入“任务队列”的任务,只有“任务队列”通知主线程某个异步任务可以执行了,该任务才会进入主线程执行
JS是单线程,同一时间只能做一件事

同步与异步的区别

同步交互:指发送一个请求,需要等待返回,然后才能发送下一个请求,有等待过程
异步交互:指发送一个请求,不需要等待返回,随时可以再发送下一个请求,即不需要等待
alert是同步,setTimeout是异步

实例:

//异步实例
console.log(100);
setTimeout(function(){
console.log(200);
},1000)
console.log(300);
// 同步实例
console.log(100);
// alert(200);//点击确认
console.log(300);

使用异步的场景

定时任务:setTimeout,setInterval
网络请求:ajax请求,动态加载
时间绑定

ajax请求

console.log(“start”);
$.get(“data1.json”,function(data1){
console.log(data1);
})
console.log(“end”);

动态加载

console.log(“start”);
var img=document.createElement(“img”);
img.onload=function(){
console.log(“加载完成”);
}
img.src=”/xxx.jpg”;
console.log(“end”);

事件绑定

console.log(“start”);
btn.addEventListener(“click”,function(){
alert(“哈哈哈”)
})
console.log(“end”);


文章作者: COOL
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 COOL !
评论
  目录