首页 > 代码库 > setTimeout与setInterval的区别

setTimeout与setInterval的区别

setTimeout与setInterval的区别:
1、setTimeout设置后隔指定时间后只会执行一次
2、setInterval设置后会每隔指定时间执行一次
3、setTimeout一般在方法内部使用达到循环调用的效果
4、setInterval一般在方法外部使用就可以达到循环调用效果

 

setTimeout例子:

<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript" language="javascript">
 var timeout;
 //显示时间
 function displayTime(){
  var date = new Date();
  var hour = date.getHours();
  hour = hour<10?"0"+hour:hour;
  var minute = date.getMinutes();
  minute = minute<10?"0"+minute:minute;
  var second = date.getSeconds();
  second = second<10?"0"+second:second;
  //将时、分、秒组成时间
  var time = hour+":"+minute+":"+second;
  //将时间显示在文本框中
  document.getElementById("txtTime").value = http://www.mamicode.com/time;
  //参数一:要调用的函数  参数二:延迟时间  返回值:Timeout对象
  timeout = window.setTimeout("displayTime()",1000);
 }
 function stopTime(){
  window.clearTimeout(timeout);//清除Timeout对象
 }
 function continueTime(){
  timeout = window.setTimeout("displayTime()",1000); 
 }
</script>

</head>

<body onl oad="displayTime()">
<input type="text" id="txtTime" />
<input type="button" onclick="stopTime()" value="http://www.mamicode.com/停止" />
<input type="button" onclick="continueTime()" value="http://www.mamicode.com/继续" />

</body>

</html>

 

setInterval例子;

<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript" language="javascript">
 var timeout;
 //显示时间
 function displayTime(){
  var date = new Date();
  var hour = date.getHours();
  hour = hour<10?"0"+hour:hour;
  var minute = date.getMinutes();
  minute = minute<10?"0"+minute:minute;
  var second = date.getSeconds();
  second = second<10?"0"+second:second;
  //将时、分、秒组成时间
  var time = hour+":"+minute+":"+second;
  //将时间显示在文本框中
  document.getElementById("txtTime").value = http://www.mamicode.com/time;
 }
 function stopTime(){
  window.clearTimeout(timeout);//清除Timeout对象
 }
 function continueTime(){
  timeout = window.setInterval("displayTime()",1000); 
 }
 timeout = window.setInterval("displayTime()",1000);
 //window.onload窗体加载事件,后面接的函数不能加左右小括号
 //window.onload = displayTime();//不会调用函数,会没效果
 window.onload = displayTime;//正确
</script>

</head>

<body>

<input type="text" id="txtTime" />

<input type="button" onclick="stopTime()" value="http://www.mamicode.com/停止" />

<input type="button" onclick="continueTime()" value="http://www.mamicode.com/继续" />

</body>

</html>