异步和单线程
- js是单线程语言,只能同时做一件事儿
- 浏览器和nodejs已支持js启动进程
- js和DOM渲染共用同一个线程,因为js可修改DOM结构(js执行的过程中DOM渲染必须停止,DOM渲染的过程中js执行必须停止)
- 遇到等待(网络请求,定时任务)不能卡住
- 需要异步(异步就是为了解决单线程等待这类问题)
- 回调callback函数形式
- 基于js是单线程语言,异步不会阻塞代码执行,同步会阻塞代码执行
异步的应用场景
- 网络请求,如ajax、图片加载
//ajax
$.get('./data1.json',function(){
console.log(data1)
})
- 定时任务,如setTimeout(一次性)、setInterval(循环的)