发新话题
打印

setTimeout 和 setInterval 的区别

setTimeout 和 setInterval 的区别

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 + " " + (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 + " " + (intvalue ++).toString();
   }
   function stop()
   {
      window.clearInterval(timer2);
   }
</script>

TOP

改进到计时执行

<script language="javascript">
var endsecond=300;
var num=0;
var endtime=0;
function second(){
        num=num+1;
        endtime=endsecond-num;
        var fen=parseInt(endtime/60);
        var sec=endtime%60;
        var t=fen+"分"+sec+"秒";
        document.getElementById("showtime").value=t;
        if(endtime < 200) {
                alert('麻烦来了');
        }

}
function startclock(){
        document.getElementById('starttime').style.display = "none";
        document.getElementById('pausetime').style.display = "";
        se=setInterval("second()",1000);
}
function pauseclock(){
        document.getElementById('starttime').style.display = "";
        document.getElementById('pausetime').style.display = "none";
        clearInterval(se);
}
function stopclock(){clearInterval(se);ss=1;m=h=s=0;}
</script>
<div id="starttime">
<input name="s" type="button" value="开始计时" onclick="startclock()">
</div>
<div id="pausetime" style="display:none">
<input name="s" type="button" value="暂停计时" onclick="pauseclock()">
</div>
<input name="showtime" style="color:#ff0000;width:200px;" id="showtime" type="text" value="0时0分0秒">

TOP

发新话题