实际上,setTimeout与setInterval的语法相同。它们都有两个参数,一个是将要执行的代码字符串,还有一个是以毫秒为单位的时间间隔。当过了那个时间段之后将执行那段代码。
不过这两个函数还是用区别的,setInterval 是在执行完一次代码之后,经过固定的时间段后继续重复执行那段代码,而setTimeout 只是执行一次那段代码。
两个都可以重复执行,循环调用:
showTime();
function showTime()
{
var Today = new Date();
window.status = "The time is "+Today.toString();
setTimeout("showTime()",5000);
}
//一旦调用这个函数1秒钟就会显示一次时间
setInterval("showTime_()",5000);
function showTime_()
{
var Today = new Date();
window.status = "The time is "+Today.toString();
}
这两种方法可能看起来非常像,显示结果也会相似,不过区别是,setTimeout不会每隔5秒钟就会执行一次showTime()函数,它是在每次调用完setTimeout过5秒钟后再去执行showTime函数。这就意味着如果showTime主体部分需要2秒钟执行完,那么整个函数每7秒钟才执行一次。而setInterval却没有被自己所调用的函数所束缚,它只是简单的每隔一段时间就重复执行一次那个函数。因此如果要求每隔一段固定时间间隔后就精确地执行某个动作,最好使用setInterval。