一、同步和异步
因为JS是一门单线程语言,为了实现多线程,引入了同步和异步的技术
每个代码都有执行时间,有些需要等待时间的代码,称为异步代码
同步:代码按照顺序一步一步执行,必须前一步执行完后,后一步才可以继续执行
异步:代码在执行时,会先执行同步代码,异步代码在任务队列中,消耗等待时间,消耗完毕后会告诉主线程它可以等待执行了,当主线程中所有代码执行完毕后,它才会执行。
同步代码和异步代码都会通过主线程进行编译,同步代码存在执行栈中,异步代码存在任务队列中,只有等主线程任务执行完毕,任务队列开始通知主线程,请求执行任务,该任务才会进入主线程执行。
异步任务又分为宏任务和微任务,当执行异步代码时,会先执行微任务,在执行宏任务。
常见的微任务有promise.then、async等等...
常见的宏任务有setTimeout、setInterval等等...
二、ajax
概念:异步交互技术,可以实现页面的局部刷新,是一种无需全部刷新网页的情况,可以部分更新网页的技术,前端通过于服务器进行少量的数据交换,可以使网页实现异步更新。
优点:1.有更流畅、更自由的用户体验,可以对用户的操作进行及时响应。
2.在不中断通信的情况下与web服务器进行通讯。
3.更灵敏的响应用户的访问,实现类似于桌面程序的交互。
4.降低网络流量,提高网络使用效率。