js无限循环定时器(js 定时循环)
js定时器的问题
(function?()?{
????var?num?=?0,
????????step?=?1;
????setInterval(function?()?{
????????num?+=?step;
????????if?(num?===?0?||?num?===?100)?{
????????????step?*=?-1;
????????}
????},?100)
})();
js中怎么让同一个定时器在不同地方多次调用
用定时器setInterval;
例如:
script
function a(){
alert(1);
}
var test = setInterval(a, 1000);
/script
这样就是每隔1S执行一次函数a
注意:在js中如果定时器不用的时候一定要清除掉,不然会消耗内存,清除可以用
window.clearInterval(intervalID)清除,intervalID是定时器的变量,比如上面的例子中
intervalID就是test
js中如果想限制定时器执行次数该怎么做
可以定义一个变量,赋值为要执行的次数,然后每次执行定时器时这个变量自减一,直到为0,清除定时器。
var?repeat?=?5;??//?限制执行次数为5次
var?timer?=?setInterval(function()?{????
????if?(repeat?==?0)?{
????????clearInterval(timer);
????}?else?{
????????repeat--;
????????//?其他代码...
????}
},?1000);
limarquee.js的无限循环滚动是不是会引起内存泄露
无限滚动意味着启动定时器,不管是用css3的animation还是js的timeout或者interval。
当时间间隔很短(操作执行时间定时器周期)的时候,会造成队列程序执行来不及时,进程队列会在一段时间之后被占满,因此内存占用量就会变大。
避免队列占满就是将定时器的时间周期变得较长或者说使得..代码执行时间定时器周期。