2、setInterval()和clearInterval()
在JavaScript中,我们可以使用setInterval()方法来设置“重复性”调用的函数。其中clearInterval()可以用来取消执行setTimeout()方法。
语法:
var 变量名 = setInterval (code , time);
说明:
参数code可以是一段代码,也可以是一个调用的函数名;
参数time表示时间,表示要过多长时间才执行code中的内容,单位为毫秒。
setTimeout()方法与setInterval()方法的语法很相似,实际上这两者在用法方面区别非常大。其中setTimeout()方法内的代码只会执行一次,而setInterval()方法内的代码会重复性执行,除非你使用clearInterval()方法来取消执行。
举例:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
//定义全局变量,用于记录秒数
var n = 5;
window.onload = function () {
//设置定时器,重复执行函数countDown()
var t = setInterval("countDown()", 1000);
}
//定义函数
function countDown() {
//判断n是否大于0,因为倒计时不可能有负数
if (n > 0){
n--;
document.getElementById("num").innerHTML = n;
}
}
</script>
</head>
<body>
<p>新年倒计时:<span id="num">5</span></p>
</body>
</html>
在浏览器预览效果如下:
分析:
window.onload表示在页面加载完毕执行,在“JavaScript页面相关事件”我们会详细讲解到。
setInterval()方法会重复执行某一段代码或函数。如果这个例子使用setTimeout方法就不能实现了,因为setTimeout()方法只会执行一次,而setInterval()会重复执行。
举例:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
//定义全局变量,用于记录秒数
var n = 0;
window.onload = function () {
//设置定时器,重复执行函数add()
var t = setInterval("add()", 1000);
//点击“暂停”按钮事件
document.getElementById("btn_pause").onclick = function () {
clearInterval(t);
}
//点击“继续”按钮事件
document.getElementById("btn_continue").onclick = function () {
if (confirm("你还要继续装逼?")){
t = setInterval("add()", 1000);
}
}
}
//定义计时函数
function add() {
n++;
document.getElementById("num").innerHTML = n;
}
</script>
</head>
<body>
<p>你已经装了<span id="num">0</span>秒的“逼”,赶紧暂停吧!</p>
<input id="btn_pause" value="暂停" type="button"/>
<input id="btn_continue" value="继续" type="button" />
</body>
</html>
在浏览器预览效果如下:
分析:
这里我做了一个小程序,其中使用setInterval()方法重复执行计时函数,并且利用按钮点击事件配合clearInterval()方法来进行“暂停”。
对于初学者来说,这个程序可能有点复杂,涉及了JavaScript对话框、DOM操作和JavaScript事件。请大家学习了后续课程再来看看。
这一节,我们把定时器的语法简单给大家做个介绍,在后面课程或者以后开发中,你们会经常见到定时器的身影。
总结
1、在JavaScript中,关于定时器的实现,我们有2组方法:
(1)setTimeout()和clearTimeout();
(2)setInterval()和clearInterval();
2、setTimeout()方法内的代码只会执行一次,而setInterval()方法内的代码会重复性执行。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。