设置定时器有以下两种方法
一、setInterval(code,millisec,lang)方法
(间歇调用)
参数 | 描述 |
---|---|
code | 必需,需要执行的代码串或函数 |
millisec | 必需,周期性执行 code 之间的时间间隔,以毫秒计 |
lang | 可选,脚本语言可以为 JScript , VBScript , JavaScript |
[注]
后一个间歇调用可能会在前一个间歇调用结束之前启动
实例: 3分钟定时器
html部分
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
minutes:<input type="text" value="0">
seconds:<input type="text" value="0">
</body>
</html>
css部分
<style type="text/css">
input{
border:2px solid rgba(0,0,0,0.8);
color:#333;
font-size:16px;
text-align: right;
}
</style>
JS部分
<script type="text/javascript">
var minutes=0,seconds=0;
var minutesNode=document.getElementsByTagName('input')[0];
var secondsNode=document.getElementsByTagName('input')[1];
var timer=setInterval(function(){
seconds++;
if(seconds==60){
minutes++;
seconds=0;
}
secondsNode.value=seconds;
minutesNode.value=minutes;
if(minutes==3){
clearInterval(timer);
}
},100)
</script>
实例中用到了 clearInterval( ) 来清除定时器
二、 setTimeout(code,millisec,lang)方法
(超时调用)
参数 code 与 lang 所描述的内容与 setInterval( )方法相同,
而在 setTimeout( ) 中参数 millisec 表示的应为执行 code 前所需等待的毫秒数
- 如果第一个参数为 字符串 ,可能会导致性能损失,因此不建议以字符串作为第一个参数。
- JS 是一个单线程的解释器,因此一段时间内只能执行一段代码,为控制要执行的代码,就有一个 JS 任务队列,setTimeout( )的第二个参数告诉 JS 再过多长时间把当前任务添加到队列的顺序中,
若队列为空,添加的代码立即执行;若队列不是空的,那么他就得等到前面的代码执行完了之后再执行 - 超时调用的代码都是在全局作用域中执行的,因此函数的 this 对象在非严格模式下指向 window 对象,严格模式下是
undefined.
实例
html部分
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<p>点击按钮,在等待 3 秒后弹出 "Hello"。</p>
<button onclick="myFunction()">点我</button>
</body>
</html>
JS部分
<script>
function myFunction()
{
setTimeout(function(){alert("Hello")},3000);
}
</script>
效果
由此可知,setTimeout( ) 方法起到的作用是延迟执行