setTimeout 和 setInterval 的區別

modun1986發表於2009-03-23

原文地址:http://www.cnblogs.com/tuyile006/archive/2008/02/18/1072748.html

setTimeout (表示式,延時時間)
setInterval(表示式,互動時間)
延時時間/互動時間是以豪秒為單位的(1000ms=1s)

setTimeout   在執行時,是在載入後延遲指定時間後,去執行一次表示式,僅執行一次
setInterval 在執行時,它從載入後,每隔指定的時間就執行一次表示式

set Timeout 也可以實現象setInterval一樣的功能
set Timeout:

<script language="javascript">
var i;
i=0;
function reloop()
{
i=i+1;
alert(String(i));
setTimeout("reloop()",1000);
}
reloop();
</script>

setInterval:
<script language="javascript">
var i;
i=0;
function reloop()
{
i=i+1;
alert(String(i));
}
setInterval("reloop()",1000);
</script>

 

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>
  

相關文章