JavaSctipt中的window对象有两个主要的定时方法,分别是setTimeout()和setInterval(),他们的语法基本上相同,但是完成的功能是有区别的。setTimeout()用于在指定的毫秒数后调用函数或计算表达式;setInterval()方法则按照指定的周期(以毫秒计)来调用函数或计算表达式。
定义和用法: | setTimeout()方法用于在指定的毫秒数后调用函数或计算表达式 |
语法: | setTimeout(code,millisec) |
参数: | ■ code[必需]:要调用的函数名或要执行的JavaScript代码串 ■ millisec[必需]:在执行代码前需等待的毫秒数,注意1000毫秒=1秒 |
提示: | setTimeout() 只执行code一次,执行玩也就完事了。如果要多次调用,请使用 setInterval() 或者让code 自身再次调用 setTimeout() |
下面是一小段setTimeout()用法示例代码:
function test(){ alert("test_setTimeout"); } window.setTimeout(test, 5000); //表示延时5秒执行test()函数 window.setTimeout("test()", 30000); //表示延时30秒执行test()函数
还有一个问题需要注意,就是调用函数中带有参数,这里的参数只能是字符串形式进行传递,而不能传递一个对象,即:
setTimeout("test(" + 参数 + ")",5000);
另外,setTimeout()前的window通常可以省略不写。
清除setTimeout()定时功能的方法如下:
var timeout = setTimeout("test()",1000); clearTimeout(timeout);
定义和用法: | setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。 setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。 |
语法: | setInterval(code,millisec[,"lang"]) |
参数: | ■ code[必需]:要调用的函数名或要执行的JavaScript代码串 ■ millisec[必需]:在执行代码前需等待的毫秒数,注意1000毫秒=1秒 |
下面是一小段setInterval()用法示例代码:
function test(){ alert("test_setTimeout"); } window.setInterval(test, 5000); //表示每隔5秒执行一次test()函数,循环执行 window.setInterval("test()", 5000); //表示每隔5秒执行一次test()函数,循环执行
同样需要注意注意的是,就是调用函数中带有参数,这里的参数只能是字符串形式进行传递,而不能传递一个对象,即:
setInterval("test(" + 参数 + ")",5000);
代码清除setInterval()定时功能的方法如下(关闭浏览器窗口也可使setInterval()函数失效):
var interval = setInterval("test()",1000); clearInterval(interval);