当前位置:网站首页>用 setTimeout 来实现 setInterval
用 setTimeout 来实现 setInterval
2022-08-03 20:31:00 【船长在船上】
️ 作者:船长在船上
主页:来访地址船长在船上的博客
简介:高级前端开发工程师,专注前端开发,欢迎咨询交流,共同学习!感谢:如果觉得博主的文章不错或者对你的工作有帮助或者解决了你的问题,可以关注、支持一下博主,如果三连收藏支持就会更好,在这里博主不胜感激!!!如有疑问可以留言、评论,看到后会及时回复。

(1)用 setTimeout()方法来模拟 setInterval()与 setInterval()之间的什么区别?
首先来看 setInterval 的缺陷,使用 setInterval()创建的定时器确保了定时器代码规则地插
入队列中。这个问题在于:如果定时器代码在代码再次添加到队列之前还没完成执行,
结果就会导致定时器代码连续运行好几次。而之间没有间隔。不过幸运的是:javascript
引擎足够聪明,能够避免这个问题。当且仅当没有该定时器的如何代码实例时,才会将
定时器代码添加到队列中。这确保了定时器代码加入队列中最小的时间间隔为指定时间。
这种重复定时器的规则有两个问题:1.某些间隔会被跳过 2.多个定时器的代码执行时间
可能会比预期小。
下面举例子说明:
假设,某个 onclick 事件处理程序使用 setInterval()来设置了一个 200ms 的重复定时器。
function say(){
setTimeout(say,200);
};
setTimeout(say,200);
//或者
setTimeout(function(){
setTimeout(arguments.callee,200);
},200);欢迎来访船长在船上的博客,如有疑问可以留言、评论,看到后会及时回复。
边栏推荐
猜你喜欢

Hinton2022年RobotBrains访谈记录

tRNA甲基化偶联3-甲基胞嘧啶(m3C)|tRNA-m3C (3-methylcy- tidine)

Matlab paper illustration drawing template No. 42 - bubble matrix diagram (correlation coefficient matrix diagram)

codeforces:C. Maximum Subrectangle【前缀和 + 贪心 + 最小子数组和】

tRNA修饰2-甲基胞嘧啶(m2C)|tRNA修饰m2G (N2-methylguanosine)

ThreadLocal详解

Why BI software can't handle correlation analysis

MapReduce介绍及执行过程

NAACL 2022 | 具有元重加权的鲁棒自增强命名实体识别技术

力扣59-螺旋矩阵 II——边界判断
随机推荐
抖音web逆向教程
Advantages and Disadvantages of Blind and Buried Via PCB Stacked Via Design
Detailed demonstration pytorch framework implementations old photo repair (GPU)
调用EasyCVR云台控制接口时,因网络延迟导致云台操作异常该如何解决?
染料修饰核酸RNA|[email protected] 610/[email protected] 594/Alexa 56
汉源高科8光口12电口交换机千兆8光8电12电16电网管型工业以太网交换机
ECCV 2022 | 清华&腾讯AI Lab提出REALY:重新思考3D人脸重建的评估方法
tRNA修饰2-甲基胞嘧啶(m2C)|tRNA修饰m2G (N2-methylguanosine)
Power button - 203 - remove the list elements linked list
力扣59-螺旋矩阵 II——边界判断
xss.haozi练习通关详解
利用 rpush 和 blpop 实现 Redis 消息队列
leetcode 899. 有序队列
leetcode 16.01. 交换数字(不使用临时变量交换2个数的值)
ES6解构赋值--数组解构及对象解构
ES6 - Arrow Functions
LeetCode 899. 有序队列
云服务器如何安全使用本地的AD/LDAP?
Why BI software can't handle correlation analysis
RNA核糖核酸修饰Alexa 568/[email protected] 594/[email prote