通常,写首页轮播模块时都需要用到间歇调用函数的调用与清除,由于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间歇调用程
序;
备注:如有更好的方法,各位网友可以写在评论区,本人感激不尽。
利用setTimeout模拟setInterval功能所产生的无法清除的问题及解决办法
最新推荐文章于 2023-04-11 23:43:53 发布