A-A+
JS中的setTimeout和setInterval的区别
简单说来: setTimeout(Expression,DelayTime),在DelayTime过后,将执行一次Expression setInterval(expression,delayTime),每个DelayTime,都将执行Expression.
常常可用于刷新表达式.
例1,代码如下:
- <div id="a"></div>
- <div id="b"></div>
- <script type="text/javascript">
- setTimeout("document.getElementById('a').innerHTML=new Date().getSeconds();",1000);
- setInterval("document.getElementById('b').innerHTML=new Date().getSeconds();",1000);
- </script>
setInterval() 例,代码如下:
- var leftSeconds = 10;
- var intervalId;
- $(function(){
- $("#btnReg").attr("disabled",true);
- intervalId = setInterval("countDown()",1000);
- });
- function countDown(){
- if(leftSeconds <=0){
- $("#btnReg").val("submit");
- $("#btnReg").attr("disabled",false);
- clearInterval(intervalId);
- return;
- }else{
- leftSeconds--;
- $("#btnReg").val("请仔细阅读" + leftSeconds + "秒");
- } //xiariboke.net
- }
- setTimeout()
- setTimeout(function(){alert("Hello World");},1000)
会在执行到这句话后延迟1秒钟来弹出alert窗口,那么再看这一段,代码如下:
- function a() {
- setTimeout(function(){alert(1)},0);
- alert(2);
- }
- a();
区别总结:
使用SetInterval和设定延时函数setTimeout 很类似。
setTimeout 运用在延迟一段时间,再进行某项操作。
setTimeout("function",time) 设置一个超时对象
setInterval("function",time) //设置一个超时对象
SetInterval为自动重复,setTimeout不会重复。
clearTimeout(对象) 清除已设置的setTimeout对象
clearInterval(对象) 清除已设置的setInterval对象