setInterval和setTimeout停止的方法

要想知道它们是怎么停止的,首先我们要了解它们的运行机制和原理,下面是具体的介绍。

先来了解 setInterval :
1,HTML DOM setInterval() 方法
定义和用法
setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。
setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。
语法
setInterval(code,millisec[,"lang"])
参数 描述
code 必需。要调用的函数或要执行的代码串。
millisec 必须。周期性执行或调用 code 之间的时间间隔,以毫秒计。
返回值
一个可以传递给 Window.clearInterval() 从而取消对 code 的周期性执行的值。
2,HTML DOM clearInterval()方法
定义和用法
clearInterval() 方法可取消由 setInterval() 设置的 timeout。
clearInterval() 方法的参数必须是由 setInterval() 返回的 ID 值。
语法
clearInterval(id_of_setinterval)
参数 描述
id_of_setinterval 由 setInterval() 返回的 ID 值。
如何停止:
下面这个例子将每隔 50 毫秒调用 clock() 函数。您也可以使用一个按钮来停止这个 clock: 

 
<html> 
<body> 
<input type="text" id="clock" size="35" /> 
<script language=javascript> 
var int=self.setInterval("clock()",50) 
function clock() 

var t=new Date() 
document.getElementById("clock").value=t 

</script> 
</form> 
<button οnclick="int=window.clearInterval(int)"> 
Stop interval</button> 
</body> 
</html> 


再来了解 setTimeout :
1,HTML DOM setTimeout() 方法
定义和用法
setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。
语法
setTimeout(code,millisec)
参数 描述
code 必需。要调用的函数后要执行的 JavaScript 代码串。
millisec 必需。在执行代码前需等待的毫秒数。
提示和注释
提示:setTimeout() 只执行 code 一次。如果要多次调用,请使用 setInterval() 或者让 code 自身再次调用 setTimeout()。
实例,这个例子,在你点击按钮 5 秒钟后会弹出一个提示框: 

<html> 
<head> 
<script type="text/javascript"> 
function timedMsg() 

var t=setTimeout("alert('5 seconds!')",5000) 

</script> 
</head> 
<body> 
<form> 
<input type="button" value="Display timed alertbox!" 
onClick="timedMsg()"> 
</form> 
<p>Click on the button above. An alert box will be 
displayed after 5 seconds.</p> 
</body> 
</html> 

2,HTML DOM clearTimeout() 方法
定义和用法clearTimeout() 方法可取消由 setTimeout() 方法设置的 timeout。语法clearTimeout(id_of_settimeout)
参数 描述
id_of_setinterval 由 setTimeout() 返回的 ID 值。该值标识要取消的延迟执行代码块。
实例下面的例子每秒调用一次 timedCount() 函数。您也可以使用一个按钮来终止这个定时消息: 

<html> 
<head> 
<script type="text/javascript"> 
var c=0 
var t 
function timedCount() 

document.getElementById('txt').value=c 
c=c+1 
t=setTimeout("timedCount()",1000) 

function stopCount() 

clearTimeout(t) 

</script> 
</head> 
<body> 
<form> 
<input type="button" value="Start count!" onClick="timedCount()"> 
<input type="text" id="txt"> 
<input type="button" value="Stop count!" onClick="stopCount()"> 
</form> 
</body> 
</html> 


使用匿名函数的形式

<!doctype html>
<html lang="en">
 <head>
 <script src = jquery.js></script>
 <script src = jqueryui/js/jquery-ui-1.8.16.custom.min.js></script>
 <link rel=stylesheet type=text/css
      href=jqueryui/css/ui-lightness/jquery-ui-1.8.16.custom.css />
<title>进度条</title>
<body>
Progress : <div id=progressbar></div>
<script>
$("div#progressbar").progressbar ();
var value = 0; //进度
var timer = setInterval (function ()
{
  $("div#progressbar").progressbar ("value", value);
  value++;
  if (value > 100) clearInterval (timer);
}, 100);
</script>
</body>
</html>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值