当前位置:网站首页>用 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);欢迎来访船长在船上的博客,如有疑问可以留言、评论,看到后会及时回复。
边栏推荐
猜你喜欢

一种能有效缓解环境噪声对音频质量干扰的方案

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

ARMuseum

Abs (), fabs () and LABS ()

化算力为战力:宁夏中卫的数字化转型启示录

Anaconda 虚拟环境迁移

Edge box + time series database, technology selection behind Midea's digital platform iBuilding

Li Mu hands-on learning deep learning V2-BERT fine-tuning and code implementation

async 和 await 原来这么简单

后台图库上传功能
随机推荐
力扣707-设计链表——链表
async 和 await 原来这么简单
ARMuseum
RNA核糖核酸修饰RNA-HiLyte FluorTM 405荧光染料|RNA-HiLyte FluorTM 405
leetcode 16.01. Swap numbers (swap the values of 2 numbers without using temporary variables)
ES6 deconstruction assignment - array object deconstruction and deconstruction
leetcode 072. 求平方根
Advantages and Disadvantages of Blind and Buried Via PCB Stacked Via Design
双线性插值公式推导及Matlab实现
RNA-ATTO 390|RNA-ATTO 425|RNA-ATTO 465|RNA-ATTO 488|RNA-ATTO 495|RNA-ATTO 520近红外荧光染料标记核糖核酸RNA
leetcode 剑指 Offer 58 - II. 左旋转字符串
力扣206-反转链表——链表
Kubernetes资源编排系列之三: Kustomize篇 作者 艄公(杨京华) 雪尧(郭耀星)
化算力为战力:宁夏中卫的数字化转型启示录
直播平台怎么搭建,针对输入框的各种组件
leetcode 326. 3 的幂
【飞控开发高级教程3】疯壳·开源编队无人机-定高、定点、悬停
EMQX Newsletter 2022-07|EMQX 5.0 正式发布、EMQX Cloud 新增 2 个数据库集成
面试官:为什么 0.1 + 0.2 == 0.300000004?
2022年强网杯rcefile wp