有时,你想在等待时间后执行代码。
javascript提供了settimeout 和clearTimeout 方法来执行和取消一个时间段的计时器。
SetTimeout 是用来在配置的时间(以毫秒为单位)等待或经过后执行代码的。
它只执行一次。
下面是一个语法
setTimeout(callbackfunction,timeinmilliseconds)
setTimeout("callbackfunction()",timeinmilliseconds)
callbackfunction是一个在给定时间后执行的函数。
timeinmilliseconds是一个以毫秒为单位的时间。一秒钟是1000。
返回值是一个表示定时器的id,可以传递给clearTimeout()来取消定时器。
Internet Explorer 11,接受第三个参数。下面是一个在3秒后执行回调函数的例子
console.log("start")
timeout = setTimeout(callbackfunction, 3000);
function callbackfunction() {
console.log("callbackfunction")
}
console.log("end")
输出
start
end
callbackfunction
clearTimeout() 方法用于在以毫秒为单位的时间后停止函数的执行。
下面是一个例子
console.log("start")
timeout = setTimeout(callbackfunction, 3000);
function callbackfunction() {
console.log("callbackfunction")
}
clearTimeout(timeout)
console.log("end")
输出
你只能在IE11中传递函数参数,其他浏览器不支持。
console.log("start")
timeout = setTimeout(callbackfunction, 3000,"John");
function callbackfunction(str) {
console.log("callbackfunction: ",str)
}
clearTimeout(timeout)
console.log("end")
输出:你只能在IE11中传递函数参数,其他浏览器不支持。
start
end
callbackfunction John
同样地,你可以在回调中调用带有参数的函数。
setTimeout(function(){
myfunction(str,str1,str3,... strN);
}, 1000);
function myfunction(str,str1,str3,... strN) {
console.log("callbackfunction: ",str)
}
注意事项:浏览器关闭或页面退出后,超时对象会自动取消。