任何编程环境的一项重要的功能就是规划代码在未来的某个时刻执行。核心JavaScript语言没有提供这样的功能,但是客户端JavaScript确实以全局函数setTimeout( )、clearTimeout( )和setInterval( )、clearInterval( )的形式提供了这一功能。Window对象是客户端JavaScript的全局对象,这些全局函数因此而成为Window对象的方法。
⑴ setTimeout( )和clearTimeout( ):
setTimeout( )方法用来安排一个函数在指定的毫秒数过去后运行,它返回一个不确定的值,这个值可以传递给clearTimeout( )方法来取消规划的函数的执行。
window.setTimeout( code,delay ):
code: 延迟delay时间后要调用的函数或者要执行的JavaScript代码串。如果这个参数是字符串,那么多条语句之间采用分号隔开。
delay: 延迟的时间,以毫秒计。
window.clearTimeout( timeoutId ):
timeoutId: setTimeout( )方法的返回值。
例子:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<script>
function f(){
alert(new Date().toLocaleString());
}
</script>
</head>
<body>
<script>
var timeout_id=setTimeout(f,5000);
</script>
<h4>在不点击下面链接的前提下,5秒钟后弹出消息框,显示系统当前时间</h4>
<a href="javascript:clearTimeout(timeout_id);">点击链接,5秒钟后不再弹出消息框</a>
</body>
</html>
⑵ setInterval( )和clearInterval( ):
setInterval( )方法用来安排一个函数在一个指定的毫秒数间隔内重复地调用,返回一个不确定的值,这个值可以传递给clearInterval( )用来取消规划的函数的任何未来的调用。
window.setInterval( code,interval ):
code: 周期性调用的函数或周期性执行的JavaScript代码串。如果这个字符串含有多条语句,那么每个语句之间用分号隔开。
interval: 一个整数,调用的时间间隔,以毫秒计。
window.clearInterval(interval_id ):
interval_id: setInterval( )方法的返回值。
例子:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<script>
function showTime(){
document.getElementById('d1').innerHTML=new Date().toLocaleString();
}
</script>
</head>
<body>
<script>
var interval_id=setInterval(showTime,1000);
</script>
<div style="background-color:cyan;width:185px;height:23px;" id="d1"></div>
<a href="javascript:clearInterval(interval_id);">停止时间更新</a>
</body>
</html>