setInterval() 使用注意的地方

        我们实现动态网页的时候,特别是图片轮播的时候,使用最多的函数就是setInterval();但是很多情况下,却不能想要的结果,却不知道错误处在什么地方。下面的例子就说明了这个函数具体的执行顺序。

$(function(){
    setInterval(function(){...       //函数f
        },1500);        
});
我们可能会想,到底是先执行函数f,过了1.5秒后在执行一遍函数f呢,还是先数1.5秒后在执行函数f呢。事实是后者,为了验证,输入代码如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<script language="javascript" src="file:///F|/jQuery/jquery-1.12.0.min.js"></script>    //引入jQuery库,每个人的路径不一定相同。
<script language="javascript">
$(function(){
	var x=-1;
	setInterval(function(){
		x++;
		$('div').eq(x).css('background','#ccff00');
		},1000);
	});
</script>
<style type="text/css">
div{width:50px;
height:50px;
background-color:#CCFFFF;
border:#000000 solid 1px;
}
</style>
</head>

<body>
<div></div>
<div></div>
<div></div>
</body>
</html>
然后在浏览器中运行。上面的代码就是改变方框的颜色微黄色。运行时会发现,最上面的方框并不是一开始就是黄的,而是过了1秒之后才变黄,说明setInterval()函数是先数指定的时间,再执行函数,然后在数相同时间,再执行函数,以此类推。


在 JavaScript 中,`setInterval()` 函数用于按照指定的周期(以毫秒计)重复执行一段代码。如果你想要终止由 `setInterval()` 创建的任务,你需要使用 `clearInterval()` 方法。 下面是如何终止一个已经设置好的定时任务的具体步骤: ### 设置和清除间隔 #### 定义 setInterval() 当你调用 `setInterval()` 来创建一个定时器时,它会返回一个唯一的标识符 (ID),这个 ID 可以用来稍后停止该定时器。 ```javascript let intervalId = setInterval(() => { console.log('每两秒钟打印一次'); }, 2000); ``` #### 使用 clearInterval() 终止 当需要停止此循环时,只需将上述得到的唯一 ID 传递给 `clearInterval()` 即可结束定时器: ```javascript // 立即终止上面定义的定时任务 clearInterval(intervalId); ``` ### 示例:带条件终止的定时器 有时我们希望基于某些条件来终止定时器,例如,在达到一定次数之后自动停止: ```javascript let count = 0; const maxCount = 5; let intervalId = setInterval(() => { if (++count >= maxCount) { clearInterval(intervalId); // 达到最大次数后终止 console.log(`已到达 ${maxCount} 次`); return; } console.log(`当前是第${count}次运行`); }, 1000); // 或者可以在其他地方根据外部事件触发终止动作 setTimeout(() => { clearInterval(intervalId); console.log("提前终止"); }, 4000); // 提前四秒内终止 ``` 需要注意的是,在实际应用中管理好这些定时器非常重要,特别是在页面卸载、组件销毁等场合下记得清理不再使用的定时器,以免造成内存泄漏等问题。 此外,还可以结合按钮点击或其他用户交互事件动态控制定时器的启动与关闭。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值