首页 > 编程语言 > 详细

JavaScript定时器详解

时间:2019-04-25 19:43:14      阅读:130      评论:0      收藏:0      [点我收藏+]

假设有以下场景

注册延迟执行计时器,延迟10ms。
延迟执行回调函数需要执行6ms。
接着注册一个间隔执行计时器,每隔10ms执行一次。
间隔执行回调函数需要执行8ms。
继续注册一个单击事件处理器,需要执行10ms。
本例中的代码块需要运行18ms。
现在,假设某毫无耐心的用户在程序执行6ms时快速单击按钮。

执行情况:
1、[0ms]执行主线程
2、[6ms]添加点击事件到队列中
3、[10ms]两个计时器按照注册顺序加入宏任务队列
4、[18ms]单击和两个计时器等待触发,单击开始执行
5、[20ms]间隔计时器又一次触发,但是已经有该实例。触发被终止。
6、[28ms]单击事件执行完毕,执行延迟计时器任务。
7、[30ms]间隔计时器又一次触发,但是已经有该实例。触发被终止。
8、[34ms]延迟计时器执行完毕,执行间隔计时器任务。
9、[40ms]间隔计时器又一次触发,间隔处理器正在执行,所以这次可以添加到任务队列。
10、[42ms]间隔计时器执行完毕,执行刚刚添加的间隔计时器。
11、[50ms]间隔计时器执行完毕.间隔计时器又一次触发。添加到任务队列,此后10、11反复执行。

JavaScript定时器详解

原文:https://www.cnblogs.com/limbobark/p/10770243.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!