js的同步与异步

js的同步与异步(setInteral和setTimeout)

1.javascript引擎是单线程的--JavaScript引擎同一时间只执行一条代码,所以每一个JavaScript代码执行块会 “阻塞”其它异步事件的执行

2.异步事件:鼠标点击,计时器被触发,或者Ajax异步请求

3.这些事件的回调函数将排在执行队 列的最后等待执行,等待下一次恰当的时间再执行(实际上,排队的方式根据浏览器的不同而不同,所以这里只是一个简化)

4.setInterval不会考虑当前正在执行什么,而把所有的堵塞的函数排到队列尾部。这意味着两次setInterval回调函数之间的时间间隔会被牺牲掉(缩减)

5.当没有任何程序等待JavaScript引擎执行,javascript代码块就不会阻塞异步的回调函数,会依次立即执行队列里排好的一个个函数。

总结:单线程的javascript引擎一次只会做一件事,同步的执行javascript代码块时,时不时会触发异步操作,就回将异步的回调函数一个个按照先后顺序放进队列去等待执行,由于队列是先进先出后进后出的,所以当同步的javascript代码块执行完成后,就会执行顺序队列中的操作。如果定时器被正在执行的代码阻塞了,它将会进入队列的尾部去等待执行下一次可能执行的时间出现,有可能超过它设定的延迟时间.
























































































aaaaa

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容