Javascript的setTimeOut和setInterval函数是用来处理延时和定时任务,页面每隔一段时间发送异步请求获取数据。其中setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式,而setInterval()则是在每隔指定的毫秒数循环调用函数或表达式,直到clearInterval把它清除。也就是说setTimeout()只执行一次,setInterval()可以执行多次。两个函数的参数也相同,第一个参数是要执行的code或句柄,第二个是延迟的毫秒数。
1、setTimeOut用法,具体代码如下:
var timeoutId = window.setTimeout(func, [delay, param1, param2, ...]); var timeoutId = window.setTimeout(code, [delay]);
timeoutId:定时器Id号,它可以在clearTimeout()函数中被用来清除定时器。
func:被执行的函数。
code:(替代的语法)一个被执行的代码串。
delay:延迟的时间,单位毫秒。如果没有指定,默认为0。
注意:使用window.setTimeout或setTimeout,两个写法基本一样,只不过window.setTimeout将setTimeout函数作为全局window对象的一个属性来引用。
示例代码如下:
function timeout(){ document.getElementById('userId').innerHTML=Math.floor(Math.random()*100 + 1); } setTimeout("timeout()",5000);
代码执行时,5秒后调用timeout()函数。
2、setInterval用法
setInterval函数的参数及用法和setTimeout函数类似,不同之处就是setInterval每隔一定的时间能执行当中的func或者code代码。
示例代码如下:
var tt = 10; function timeGo(){ tt--; document.getElementById("userId").innerHTML = tt; if(tt==0){ window.location.href='www.yoodb.com'; return false; } } var timer = window.setInterval("timeGo()",5000);
函数timeGo()定义了页面元素#userId显示的内容,当tt等于0时,页面定向到首页。之后定义定时器timer,使用setInterval()每隔1秒调用一次timeGo()。此时timeGo会执行10次,每次数字tt会减1,直到为0。如果想停止定时器,调用如下函数即可。
window.clearInterval(timer);
当代码执行时,10秒后页面跳转到www.yoodb.com页面。
注意:setTimeout()也可以实现每隔一段时间重复执行某个函数,每次调用即可实现此方法了。