js中的setTimeout和setInterval

 

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>setInterval</title>
<script type="text/javascript">
    var i=0;
    var setID;
    function startInterval(){    
        setID=setInterval(function(){
            console.log(i++);
        },1000);
    }        
    
    function stopInterval(){
        clearInterval(setID);
    }
</script>
</head>

<body>
      <input type="button" value="开始" id="start" onclick="startInterval()"/>
      <input type="button" value="停止" id="stop" onclick="stopInterval()"/>
</body>
</html>

 

 

官方定义:setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式;

语法:setTimeout(code,milliseconds)括号里两个都是必须的参数(code:要调用的函数后要执行的 JavaScript 代码串;milliseconds:延迟的毫秒数)

需要注意的是:setTimeout() 只执行 code 一次。如果要多次调用,请使用 setInterval() 或者让 code 自身再次调用 setTimeout()。

先看网上一个列子:

 

<html>
 <head> 
  <script type="text/javascript">
function timedMsg(){
var t=setTimeout("alert('5 seconds!')",5000)
}
</script> 
 </head> 
 <body> 
  <form> 
   <input type="button" value="Display timed alertbox!" onclick="timedMsg()" /> 
  </form> 
  <p>Click on the button above. An alert box will be displayed after 5 seconds.</p>  
 </body>
</html>

 

 

当按钮被点击的时候,过5秒钟之后会弹出提示框,单人我们在function当中也没有必要采用定义变量的方式,直接使用setTimeout也是正确的

与setTimeout()对应的有clearTimeout()这个方法

 

定义:clearTimeout() 方法可取消由 setTimeout() 方法设置的 timeout。

语法:clearTimeout(id_of_settimeout) 参数说明:id_of_settimeout由 setTimeout() 返回的 ID 值。该值标识要取消的延迟执行代码块。也可以理解这个方法值传进一个对象就可以

修改一下上面的列子:

 

<html>
 <head> 
  <script type="text/javascript">
var c = 0;
var t;
function timedMsg(){
document.getElementById("test").innerHTML = c;
c = c+1;
t=setTimeout("timedMsg()",1000)
}
function stopClock(){
clearTimeout(t);
}
</script> 
 </head> 
 <body> 
  <form> 
   <input type="button" value="Display timed alertbox!" onclick="timedMsg()" /> 
   <input type="button" value="stop the clock" onclick="stopClock()" /> 
  </form> 
  <p id="test"></p>  
 </body>
</html>

 

 

点击第一个按钮 的时候会开始计时,当点击第二个按钮的 时候会调用clearTimeout()来清除设置的时间。

到现在大家可能有点明白了setTimeout()常用的功能了吧,除了延迟你要执行的代码块或者函数之外,还有定时和时钟的功能,上面更改的例子是通过setTimeout()不断调用同一个函数来实现计时的,并没有使用setInterval();

 

定义:setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。

语法:setInterval(code,millisec)用法和setTimeout一样,但是setInterval()多了一个可以传递给 Window.clearInterval() 从而取消对 code 的周期性执行的返回值。

同样以上面的计时为例子:


<html>
 <head> 
  <script type="text/javascript">
var c = 0;
function timedMsg(){
document.getElementById("test").innerHTML = c;
c = c+1;
}
var test = window.setInterval("timedMsg()",1000);
function stopClock(){
clearInterval(test);
}
</script> 
 </head> 
 <body> 
  <form> 
   <input type="button" value="Display timed alertbox!" onclick="timedMsg()" /> 
   <input type="button" value="stop the clock" onclick="stopClock()" /> 
  </form> 
  <p id="test"></p>  
 </body>
</html>

 

clearInterval()和clearTimeout()的用法相同。

 

文章转载:http://blog.csdn.net/andybruse/article/details/7967551

posted @ 2015-06-01 11:05  linyongqin  阅读(159)  评论(0编辑  收藏  举报