为什么在用定时器之前需要清除定时器

如果不清楚定时器会造成什么情况能否举例说明

阅读 9.9k
5 个回答

如果是setTimeout这种定时器,不清理就会在线程空闲后立即执行一次。
如果是setInterval这种,不清理,就一直按照间隔不断的执行下去。

你说的那种用之前清理,应该是节流之类的用法。

对于频繁调用的方法,去掉中间多次无用的重复调用,只保留最后一个调用。
典型应用于根据Input的keydown或者change来数据搜索查询。

顺手给你找了个javascript-throttle

没有规定一定要清清除定时器。

举个例子
比如你写个hover特效不先清除定时器,鼠标多移入移出几次,动画效果会一直在执行,体验不好

可能会造成多个定时器的叠加.

新手上路,请多包涵

除了防止定时器效果叠加之外,使用前清除定时器不是必须的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏