A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© canvas 黑马帝   /  2011-9-28 23:50  /  2039 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

javascript中setTimeout与setInterval函数的区别

4 个回复

倒序浏览
黑马网友  发表于 2011-9-29 00:51:13
沙发
setTimeout和setInterval的语法相同,它们都有两个参数,一个是将要执行的代码字符串,还有一个是以毫秒为单位的时间间隔,当过了那个时间段之后就将执行那段代码。
setInterval在执行完一次代码之后,经过了那个固定的时间间隔,它还会自动重复执行代码,而setTimeout只执行一次那段代码。

评分

参与人数 1技术分 +2 收起 理由
wangfayin + 2 回答的不错!

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-29 08:38:38
藤椅
setTimeout要实现与setInterval相同的功能,setTimeout应使用递归调用,如:
function init(){
     dispTime();
     window.setTimeout(int,1000);
}
而使用setInterval:
function init(){
     dispTime();
     window.setInterval(dispTime,1000);
}
它们都有各自的清除所设置的定时器
clearInterval和clearTimeout.

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1 不错!

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-29 08:47:08
板凳
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>

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-29 17:53:55
报纸

settimeout和setInterval的区别

区别:settimeout方法是:在指定某一个时间后执行某个方法,
           setInterval方法是在指:每隔一个指定的时间段后执行某个方法。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马