既然js是单线程的,那么他是如何是实现异步操作的?我们把这些任务称为:异步任务 同一段时间内可以做多个任务,例如
setTimeout
setInterval
ajax
......监听DOM,修改页面的操作,渲染我们的样式,都是需要浏览器去处理的
这样的话,所谓的异步请求就很好理解了
指web服务器对请求作出响应时不要求你等待,这说明,浏览器解析js代码,当遇到异步任务时,不会僵持在那里不动...)做完了,在次点击时,它才会生效
在使用Ajax的时候,应该推荐使用异步的方式,而不应该是同步的,不然的话,它就会阻塞我们后续的代码执行
?...首先我们知道了JS里的一种任务分类方式,就是将任务分为: 同步任务和异步任务
虽然JS是单线程的,但是浏览器的内核却是多线程的,在浏览器的内核中不同的异步操作由不同的浏览器内核模块调度执行,异步任务操作会将相关回调添加到任务队列中...而不同的异步操作添加到任务队列的时机也不同,比如onclick, setTimeout, ajax 处理的方式都不同,这些异步操作是由浏览器内核来执行的,浏览器内核上包含3种 webAPI,分别是 DOM