JavaScript中的setTimeout 和 setInterval 的区别

12年前
window对象有两个主要的定时方法,分别是setTimeout 和 setInteval  他们的语法基本上相同,但是完成的功能取有区别。

setTimeout方法是定时程序,也就是在什么时间以后干什么。干完了就拉倒。

setInterval方法则是表示间隔一定时间反复执行某操作。

如果用setTimeout实现setInerval的功能,就需要在执行的程序中再定时调用自己才行。如果要清除计数器需要 根据使用的方法不同,调用不同的清除方法:

例如:tttt=setTimeout('northsnow()',1000);

clearTimeout(tttt);

或者:

tttt=setInterval('northsnow()',1000);

clearInteval(tttt);

举一个例子:

 <div id="liujincai"></div>   <input type="button" name="start" value="start" onclick='startShow();'>   <input type="button" name="stop" value="stop" onclick="stop();">   <script language="javascript">      var intvalue=1;      var timer2=null;      function startShow()      {         liujincai.innerHTML=liujincai.innerHTML + "&nbsp;" + (intvalue ++).toString();         timer2=window.setTimeout("startShow()",2000);      }      function stop()      {         window.clearTimeout(timer2);      }   </script>

或者:

 <div id="liujincai"></div>  <input type="button" name="start" value="start" onclick='timer2=window.setInterval("startShow()",2000);//startShow();'>  <input type="button" name="stop" value="stop" onclick="stop();">  <script language="javascript">     var intvalue=1;     var timer2=null;     function startShow()     {        liujincai.innerHTML=liujincai.innerHTML + "&nbsp;" + (intvalue ++).toString();     }     function stop()     {        window.clearInterval(timer2);     }  </script>