SetTimeout()多次运行函数后越来越快的问题
2024-09-05 02:33:59
问题原因很简单,但是由于代码逻辑问题,一直没有考虑到;
网上有个帖子说的很明白:原帖入口
假如你在0时刻点击了一下按钮,那么500ms时数字会跳一下,1000ms会再跳一下,依次类推,1500,2000,2500.....的时候都会跳一下,时间间隔始终是500ms,但是,假如你在300ms的时候又点击了一下按钮,那么800ms的时候数字就会跳一下,1300,1800,2300.....的时侯都会跳一下,那么现在看0到2000ms之间,300,500,800,1000,1300,1500,1800,2000时刻时数字都会跳一下,数字变化的时间间隔自然会变小,同理,你点击的次数越多,时间间隔就会越小。
你每点击一次都会创建一个新的定时器,但是之前的定时器不会自己取消。
你要在创建新的定时器前用clearTimeout()取消之前的定时器。
解决:创建新的定时器前用clearTimeout()取消之前的定时器。
最新文章
- Oil Deposits
- Linux下创建新用户
- 假如现在有一堆长度大于3小于9的电话号码,用座机呼叫,如果出现这样的号码【123和12345】那么12345将永远不会被拨出,因为拨到123的时候电话已经呼出了,试写一个函数输出所有不能被呼出的电话号码(java实现)
- 点我吧工作总结(技术篇) Cobar原理和环境搭建
- Oracle过程及函数的参数模式,In、out、in out模式
- Spring学习8-Spring事务管理(编程式事务管理)
- win7下折腾filezilla_client
- 通过简单的Linux内核启动程序代码窥探操作系统的启动原理
- C#.Net 如何动态加载与卸载程序集(.dll或者.exe)4-----Net下的AppDomain编程 [摘录]
- bzoj3205
- ZOJ 1025 Wooden Sticks(快排+贪心)
- iPhone 5,6,6 plus 尺寸
- 【算法系列学习】Dijkstra求最短路 [kuangbin带你飞]专题四 最短路练习 D - Silver Cow Party
- freemarker将文件读写到HTML中
- Vue 无限滚动加载指令
- Sass和less的区别是什么?用哪个好
- gcc各个版本下载
- Letters Removing CodeForces - 899F (线段树维护序列)
- django rest framework 的xadmin 的坑
- BZOJ 4326 运输计划