Javascript定时器的使用
2013-09-13 11:56
253 查看
在Javascript中有两个函数可以实现"定时器"的功能setTimeout和setInterval,这两个函数的参数是相同的,但是代表的意义有所差别。例如setTimeout('test()',3000);的意思是3000毫秒之后执行函数test()(仅仅执行一次),setInterval('test()',3000); 表示每隔3000毫秒执行一次test()函数。一个是仅仅执行一次一个是不断执行。我们编写如下代码:
<script>
function test(){
alert('111');
}
setInterval('test()',3000);//每隔3秒执行一次函数test()
</script>
我们执行会看到每隔3秒会执行alert('111');不会停止,如果编写如下代码:
<script>
function test(){
alert('111');
}
setTimeout('test()',3000); //3秒之后执行一次(仅仅执行一次)
</script>
运行会发现3秒后执行一次就不执行了,这就是两者的差别,使用哪一个看我们的具体需求,其实变通一下也可以使setTimeout具有和setInterval同样的功能,例如:
<script>
function test(){
alert('111');
setTimeout('test()',3000);//函数内调用
}
setTimeout('test()',3000); //3秒之后执行一次(仅仅执行一次)
</script>
在函数内执行了setTimeout,这样我们执行后会发现也是每隔3秒执行一次的。另外要注意的是,有时我们需要手动停止执行,例如我们使用定时器实现了图片的漂浮功能(每隔一定时间设置图片的坐标),当鼠标移动到图片时我们需要定时器“失效”,这如何实现呢?如果使用了setInterval那很好办,在执行setInterval后,回返回一个timer ID,如果将该ID传递给函数clearInterval,就可以终止执行调用过的函数了,例如:
<div id="show">0</div>
<script>
function test(){
var obj = document.getElementById('show');
obj.innerHTML = parseInt(obj.innerHTML) + 1;
}
function start_add(){
time_id = setInterval('test()',500);//每隔0.5秒执行一次函数test()
}
</script>
<input type="button" value="点击开始执行" onclick="start_add();" />
<input type="button" value="点击终止执行" onclick="clearInterval(time_id);" />
可以执行一下以上代码看一下效果。
<script>
function test(){
alert('111');
}
setInterval('test()',3000);//每隔3秒执行一次函数test()
</script>
我们执行会看到每隔3秒会执行alert('111');不会停止,如果编写如下代码:
<script>
function test(){
alert('111');
}
setTimeout('test()',3000); //3秒之后执行一次(仅仅执行一次)
</script>
运行会发现3秒后执行一次就不执行了,这就是两者的差别,使用哪一个看我们的具体需求,其实变通一下也可以使setTimeout具有和setInterval同样的功能,例如:
<script>
function test(){
alert('111');
setTimeout('test()',3000);//函数内调用
}
setTimeout('test()',3000); //3秒之后执行一次(仅仅执行一次)
</script>
在函数内执行了setTimeout,这样我们执行后会发现也是每隔3秒执行一次的。另外要注意的是,有时我们需要手动停止执行,例如我们使用定时器实现了图片的漂浮功能(每隔一定时间设置图片的坐标),当鼠标移动到图片时我们需要定时器“失效”,这如何实现呢?如果使用了setInterval那很好办,在执行setInterval后,回返回一个timer ID,如果将该ID传递给函数clearInterval,就可以终止执行调用过的函数了,例如:
<div id="show">0</div>
<script>
function test(){
var obj = document.getElementById('show');
obj.innerHTML = parseInt(obj.innerHTML) + 1;
}
function start_add(){
time_id = setInterval('test()',500);//每隔0.5秒执行一次函数test()
}
</script>
<input type="button" value="点击开始执行" onclick="start_add();" />
<input type="button" value="点击终止执行" onclick="clearInterval(time_id);" />
可以执行一下以上代码看一下效果。
相关文章推荐
- 每天一个JavaScript实例-使用带有定时器的函数闭包
- javascript中定时器的使用
- Javascript中定时器的使用方法
- JavaScript的定时器使用和事件驱动
- JavaScript中定时器使用
- 【JavaScript】使用定时器实现Js的延期执行或重复执行setTimeout,setInterval
- JavaScript 定时器使用
- 使用定时器实现JavaScript的延期执行或重复执行
- JavaScript-定时器的使用之无缝滚动
- javascript定时器使用
- Javascript使用定时器来处理数组和分割任务实现异步
- javascript两种定时器的使用及其清除
- JavaScript案例学习8–定时器的使用
- Javascript基础——定时器的使用及简单小应用(简易时钟1、延时提示框)
- Javascript定时器的使用
- 使用定时器限制点击按钮发送短信(附源码)--JavaScript小案例
- JavaScript定时器原理及高级使用
- 关于Javascript定时器的使用
- JavaScript中的定时器之Item23的合理使用
- 我要每天进步多一点系列: javascript-定时器setTimeout使用心得