当前位置:网站首页>用 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);
欢迎来访船长在船上的博客,如有疑问可以留言、评论,看到后会及时回复。
边栏推荐
- Kubernetes资源编排系列之三: Kustomize篇 作者 艄公(杨京华) 雪尧(郭耀星)
- leetcode 剑指 Offer 15. 二进制中1的个数
- ES6 deconstruction assignment - array object deconstruction and deconstruction
- How can a cloud server safely use local AD/LDAP?
- tkwebview2创作心得
- 力扣59-螺旋矩阵 II——边界判断
- 149. The largest number on a straight line, and check the set
- ESP8266-Arduino编程实例-BH1750FVI环境光传感器驱动
- 谁的孙子最多II
- Detailed AST abstract syntax tree
猜你喜欢
Matlab paper illustration drawing template No. 42 - bubble matrix diagram (correlation coefficient matrix diagram)
5 款漏洞扫描工具:实用、强力、全面(含开源)
ESP8266-Arduino编程实例-WS2812驱动
若依集成easyexcel实现excel表格增强
华为设备配置VRRP与BFD联动实现快速切换
Pytorch GPU 训练环境搭建
信使mRNA甲基化偶联3-甲基胞嘧啶(m3C)|mRNA-m3C
数据库定时备份winserver2012篇
RNA核糖核酸修饰荧光染料|HiLyte Fluor 488/555/594/647/680/750标记RNA核糖核酸
Golang死信队列的使用
随机推荐
codeforces:C. Maximum Subrectangle【前缀和 + 贪心 + 最小子数组和】
leetcode 268. Missing Numbers (XOR!!)
tRNA-m5C转运RNA(tRNA)修饰5-甲基胞嘧啶(m5C)|tRNA修饰m1Am2A (2-methyladenosine)
leetcode 461. Hamming Distance
华为设备VRRP配置命令
2022 年值得尝试的 7 个 MQTT 客户端工具
leetcode 1837. K 进制表示下的各位数字总和
Leetcode 125. Verify palindrome string
leetcode refers to Offer 58 - II. Left Rotate String
通关剑指 Offer——剑指 Offer II 009. 乘积小于 K 的子数组
力扣59-螺旋矩阵 II——边界判断
Leetcode 899. An orderly queue
转运RNA(tRNA)甲基化修饰7-甲基胞嘧啶(m7C)|tRNA-m7G
leetcode 326. 3 的幂
leetcode 448. Find All Numbers Disappeared in an Array 找到所有数组中消失的数字(简单)
NAACL 2022 | 具有元重加权的鲁棒自增强命名实体识别技术
RNA核糖核酸修饰Alexa 568/[email protected] 594/[email prote
ThreadLocal详解
博士申请 | 美国明尼苏达大学葛畅教授招收隐私数据管理方向全奖博士/硕士/博后/访问学者...
不知道这4种缓存模式,敢说懂缓存吗?