关于JavaScript的setInterval()方法越加越多的问题
functiongundong(){if(a>3){a=1;}on_over(a);a+=1;setInterval(gundong,2000);}当我调用这个方法的时候...
function gundong(){
if(a>3)
{
a=1;
}
on_over(a);
a+=1;
setInterval(gundong,2000);
}
当我调用这个方法的时候,感觉不是1个1个加的,一会后就会出现IE无响应的情况。请问这个是怎么回事啊? 展开
if(a>3)
{
a=1;
}
on_over(a);
a+=1;
setInterval(gundong,2000);
}
当我调用这个方法的时候,感觉不是1个1个加的,一会后就会出现IE无响应的情况。请问这个是怎么回事啊? 展开
3个回答
展开全部
你这个是个死循环,不要用setInterval,要用setTimeout
setInterval停止要用clearInterval,但是代码中没有停止,而且没调用一次会多一个setInterval,所以到最后有n个计时器在调用,ie肯定死掉
每次调用setInterval要保存起来,一遍在不需要的时候给清除掉
如下面代码:
var timer = setInterval(function(){}, 1000);
不需要的时候:
clearInterval(timer); // 停止
setInterval停止要用clearInterval,但是代码中没有停止,而且没调用一次会多一个setInterval,所以到最后有n个计时器在调用,ie肯定死掉
每次调用setInterval要保存起来,一遍在不需要的时候给清除掉
如下面代码:
var timer = setInterval(function(){}, 1000);
不需要的时候:
clearInterval(timer); // 停止
展开全部
setInterval放到函数外面
function gundong(){
if(a>3)
{
a=1;
}
on_over(a);
a+=1;
}
setInterval(gundong,2000);
function gundong(){
if(a>3)
{
a=1;
}
on_over(a);
a+=1;
}
setInterval(gundong,2000);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
setInterval(gundong,2000);
写在函数gundong()外面就对了。
写在里面那是递归。
写在函数gundong()外面就对了。
写在里面那是递归。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询