资讯专栏INFORMATION COLUMN

利用setTimeout模拟setInterval功能所产生的无法清除的问题及解决办法

pakolagij / 3497人阅读

摘要:通常,写首页轮播模块时都需要用到间歇调用函数的调用与清除,由于定时器存在一些性能上的问题,因此,在实际开发中都采用来模拟的功能,其模拟代码如下由于在内部调用其自身,所以导致失效对于这个问题,只需要稍做修改即可解决,其代码如下这样,即可通过清

 通常,写首页轮播模块时都需要用到间歇调用函数的调用与清除,由于setInterval定时
 器存在一些性能上的问题,因此,在实际开发中都采用setTimeout来模拟setInterval的
 功能,其模拟代码如下:
 var timer = setTimeout(function() {
     //doing something
     setTimeout(arguments.callee, interval)
 }, interval);
 由于在timer 内部调用其自身,所以导致clearTimeout(timer)失效,对于这个问题,只需
 要稍做修改即可解决,其代码如下:
 var timer = setTimeout(function() {
     //doing something
     timer = setTimeout(arguments.callee, interval)
 }, interval);
 这样,即可通过clearTimeout(timer)清除setTimeout模拟的setInterval间歇调用程
 序;
 
 
 
 备注:如有更好的方法,各位网友可以写在评论区,本人感激不尽。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/88761.html

相关文章

  • 高级定时器---《高程3》

    摘要:也就是说,代码队列中仅能有一个间歇定时器在等待。这导致两个问题,一是某些间隔会跳过,二是多个定时器的代码之间的间隔可能比预期的小。 定时器:间歇调用和超时调用 超时调用:setTimeout(),接受两个参数,第一个参数是可执行的JavaScript代码字符串,或是回调函数,第二个参数是毫秒为单位的插入代码队列的的时间。清除方式:clearTimeout(),参数是设置setTimeo...

    miya 评论0 收藏0
  • 高级定时器---《高程3》

    摘要:也就是说,代码队列中仅能有一个间歇定时器在等待。这导致两个问题,一是某些间隔会跳过,二是多个定时器的代码之间的间隔可能比预期的小。 定时器:间歇调用和超时调用 超时调用:setTimeout(),接受两个参数,第一个参数是可执行的JavaScript代码字符串,或是回调函数,第二个参数是毫秒为单位的插入代码队列的的时间。清除方式:clearTimeout(),参数是设置setTimeo...

    hikui 评论0 收藏0
  • javascript中,如何用setTimeout函数模拟实现setInterval函数?

    摘要:定义对象,用于保存映射到真实每调用一次就会自增的一个这里注意要使用局部变量保存哦,避免函数内部直接引用,因为可能会再次变化说明使用时除了需要加上一个对象做命名空间外其实也是没办法哦,因为和需要共享一个叫做的映射表,其他与直接调用原生,无异举 talk is cheap: var util = (function(){ //定义intervalObj对象,用于保存interval...

    邱勇 评论0 收藏0
  • setTimeout深入JavaScript执行环境异步机制

    摘要:图片转引自的演讲和两个定时器中回调的执行逻辑便是典型的机制。异步编程关于异步编程我的理解是,在执行环境所提供的异步机制之上,在应用编码层面上实现整体流程控制的异步风格。 问题背景 在一次开发任务中,需要实现如下一个饼状图动画,基于canvas进行绘图,但由于对于JS运行环境中异步机制的不了解,所以遇到了一个棘手的问题,始终无法解决,之后在与同事交流之后才恍然大悟。问题的根节在于经典的J...

    codeGoogle 评论0 收藏0
  • 演示当定时器在页面最小化时无法执行

      我们讲述的是关于 ahooks 源码系列文章的第七篇,总结主要讲述下面几点:  巩固 React hooks 的理解。  学习如何抽象自定义 hooks。构建属于自己的 React hooks 工具库。  培养阅读学习源码的习惯,工具库是一个对源码阅读不错的选择。  注:本系列对 ahooks 的源码解析是基于v3.3.13。自己 folk 了一份源码,主要是对源码做了一些解读,可见详情。  ...

    3403771864 评论0 收藏0

发表评论

0条评论

pakolagij

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<