在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=關閉窗口 onclick="window.close();" /> </body> </html>
angularJs 的延遲是 $timeout方法
//當timeout被定義時,它返回一個promise對象
var timer = $timeout(
function() {
console.log( "Timeout executed", Date.now() );
},
2000
);