黑马程序员技术交流社区

标题: javascript中setTimeout与setInterval函数的区别 [打印本页]

作者: canvas    时间: 2011-9-28 23:50
标题: javascript中setTimeout与setInterval函数的区别
javascript中setTimeout与setInterval函数的区别
作者: 匿名    时间: 2011-9-29 00:51
setTimeout和setInterval的语法相同,它们都有两个参数,一个是将要执行的代码字符串,还有一个是以毫秒为单位的时间间隔,当过了那个时间段之后就将执行那段代码。
setInterval在执行完一次代码之后,经过了那个固定的时间间隔,它还会自动重复执行代码,而setTimeout只执行一次那段代码。
作者: 匿名    时间: 2011-9-29 08:38
setTimeout要实现与setInterval相同的功能,setTimeout应使用递归调用,如:
function init(){
     dispTime();
     window.setTimeout(int,1000);
}
而使用setInterval:
function init(){
     dispTime();
     window.setInterval(dispTime,1000);
}
它们都有各自的清除所设置的定时器
clearInterval和clearTimeout.
作者: 匿名    时间: 2011-9-29 08:47
window对象有两个主要的定时方法,分别是setTimeout 和 setInteval  他们的语法基本上相同,但是完成的功能取有区别。
    * setTimeout方法是定时程序,也就是在什么时间以后干什么。干完了就拉倒。
    * setInterval方法则是表示间隔一定时间反复执行某操作。
    如果用setTimeout实现setInerval的功能,就需要在执行的程序中再定时调用自己才行。如果要清除计数器需要根据使用的方法不同,调用不同的清除方法:

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

clearTimeout(tttt);

或者:

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

clearInteval_r(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>

    再举一个显示当前日期及时间的例子:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>无标题页</title>
    <script language=javascript>
    window.setInterval("timer.innerHTML = new Date().toLocaleString()+'星期'+'一,二,三,四,五,六,日'.charAt(new Date().getDay())",1000);
    </script>

</head>
<body>
<div id="timer"></div>
</body>
</html>
作者: 匿名    时间: 2011-9-29 17:53
标题: settimeout和setInterval的区别
区别:settimeout方法是:在指定某一个时间后执行某个方法,
           setInterval方法是在指:每隔一个指定的时间段后执行某个方法。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2