JavaScript同步代码和异步代码
同步代码
代码单线执行,发送服务器请求后,等待返回数据,会出现网页空白(阻塞网页运行)
异步代码
代码发送请求后继续执行后续代码,不等待服务器返回数据(网页运行流畅)
js中常见的异步执行代码:
1.ajax请求:异步 JavaScript 和 XML
2.定时器:间隔一段时间才会执行,
3.事件处理函数:满足事件触发条件才会执行
异步底层执行原理
js代码是单线执行,代码从上往下依次执行,当遇到【异步任务】时,将其储存到一个【执行队列】中,当主线的代码执行结束后,在根据服务器的处理先后顺序执行剩余的【异步任务】
上述打印由于定时器的异步执行,先打印的3,再打印2
注意:【执行队列】中的任务只有在主线代码运行结束后才会执行,执行的先后顺序有浏览器返回的先后顺序决定
如何获取异步代码内的参数
异步代码的参数需要浏览器返回数据才会执行,但获取参数是在主线代码中执行。
解决方式:回调函数(利用函数声明不会执行,调用才会执行的性质)
封装异步代码,并传递一个函数fn作为实参,在请求结束的回调函数中调用函数fn并给他传递参数,
通俗地讲,就是让参数fn做异步代码的卧底,将结果传递出来