在js中,延迟执行函数有两种:
settimeout和setinterval,用法如下:
settimeout("test()","2000"); //2000毫秒后执行test()函数,只执行一次。 setinterval("test()","2000"); //每隔2000毫秒执行一次test()函数,执行无数次。 var interval = window.setinterval("test()","2000"); window.clearinterval(interval); //停止执行setinterval循环。 当我们想让test()函数每隔2000毫秒执行一次,执行10000毫秒后停止执行时,可以用两者三者结合使用来实现。 var interval2 = window.setinterval("openit2()",2000); settimeout(function() {window.clearinterval(interval2);},10000); 带参方法执行延迟 settimeout(function(){return executequerytask(data);},"10000");
例子:
<html> <head> <title>my jsp 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> <script> var num = 3; window.onload = function(){ var s = window.setinterval(function(){ document.getelementbyid("s").innerhtml=num; num--; if(num<=0){ window.close(); } }, 1000); } </script> </head> <body> <h1><s:property value="msg"/></h1> <h2>本窗口在<span id="s">3</span>秒之后关闭!</h2> <input type=button value=关闭窗口 οnclick="window.close();" /> </body> </html>