javaScript 中怎么延迟执行一个方法?

如题所述

setTimeout("test()","2000");  //2000毫秒后执行test()函数,只执行一次。setInterval("test()","2000"); //每隔2000毫秒执行一次test()函数,执行无数次。

扩展资料:

1、setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。

2、语法:setTimeout(function, milliseconds, param1, param2, ...)。

3、提示: 1000 毫秒= 1 秒。

4、提示: 如果你只想重复执行可以使用 setInterval() 方法。

5、提示: 使用 clearTimeout() 方法来阻止函数的执行。

6、所需参数1:code/function,必需。要调用一个代码串,也可以是一个函数。

7、所需参数2:milliseconds可选。执行或调用 code/function 需要等待的时间,以毫秒计。默认为 0。

8、所需参数3:param1, param2, ...,可选。 传给执行函数的其他参数(IE9 及其更早版本不支持该参数)。

9、返回值:返回一个 ID(数字),可以将这个ID传递给 clearTimeout() 来取消执行。

10、实例:var myWindow=window.open("","","width=200,height=100");myWindow.document.write("<p>这是一个新窗口'</p>");setTimeout(function(){ myWindow.close() }, 3000);

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-08-12

function test() {

alert("test");

}

setTimeout(test, 1000);

其中,setTimeout为延迟执行方法,是JS原生的方法
第一个参数为函数名,第二个参数为延迟时间,单位毫秒。

定时和延时执行函数:

有两种方法,setInterval(function,time)和setTimeout(function,time),function是要执行的函数,time是要延迟的时间。虽然这两种方法都可以实现,但他们的实现原理是不同的,setTimeout是一个延迟方法,它会让函数延迟一段时间执行,这个函数只执行一次,不过我们使用递归调用,就可以做到定时执行函数,如:

function al(){

alert("that's ok");

setTimeout(al,1000);         

如果我们用setInterval就不需要这样了,如下:

function bl(){

alert("ok");

}

setInterval(bl,1000);

拓展资料

两种延迟方法的介绍:

setTimeout

定义和用法: setTimeout()方法用于在指定的毫秒数后调用函数或计算表达式。  

语法: setTimeout(code,millisec)  

参数: code (必需):要调用的函数后要执行的 JavaScript 代码串。millisec(必需):在执行代码前需等待的毫秒数。  提示: setTimeout() 只执行 code 一次。如果要多次调用,请使用 setInterval() 或者让 code 自身再次调用 setTimeout()。

setInterval

setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。

setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。

语法: setInterval(code,millisec[,"lang"])

参数: code 必需。要调用的函数或要执行的代码串。millisec 必须。周期性执行或调用 code 之间的时间间隔,以毫秒计。

返回值: 一个可以传递给 Window.clearInterval() 从而取消对 code 的周期性执行的值。



本回答被网友采纳
第2个回答  2012-06-25
function test() {
alert("test");
}
setTimeout(test, 1000);

其中,setTimeout为延迟执行方法,是JS原生的方法
第一个参数为函数名,第二个参数为延迟时间,单位毫秒

希望对您有帮助~
By Billskate本回答被网友采纳
第3个回答  2012-06-27
阻塞性的延时没有.
只有setTimeout(fun,time);
只延后time毫秒执行fun.

setTimeout后面的语句并不会延时执行.
第4个回答  2012-06-27
setTimeout() 只执行 code 一次。
如果要多次调用,请使用 setInterval() 或者让 code 自身再次调用 setTimeout()。
<html>
<head>
<script type="text/javascript">
function timedMsg(){
var t=setTimeout("alert('5 seconds!')",5000)
}
</script>
</head>
<body>
<form>
<input type="button" value="Display timed alertbox!"onClick="timedMsg()">
</form>
<p>Click on the button above. An alert box will bedisplayed after 5 seconds.</p>
</body>
</html>本回答被提问者采纳
相似回答