同步与异步
同步任务:在主线程上排队执行的任务,只有前一个任务执行完毕,才能执行后一个任务
异步任务:不进入主线程,而进入“任务队列”的任务,只有“任务队列”通知主线程某个异步任务可以执行了,该任务才会进入主线程执行
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”);