[浪風推薦]javascritp中倒計定時器和循環定時器

 

在javascritp中,有兩個關於定時器的專用函數,分別爲:
1.倒計定時器:timename=setTimeout(「function();」,delaytime);
2.循環定時器:timename=setInterval(「function();」,delaytime);javascript

尤爲注意的是setInterval,在ie中會失效,特別是想用 它來反覆訪問一個地址的時候,ie會發現你訪問的是一個已經加載過的地址,因而就再也不訪問,而從本地緩存中加載。因此要在反覆訪問的地址中加入隨機數。我 是這麼加的 xxxx.php?rand=Math.random()php


第一個參數「function()」是定時器觸發時要執行的動做,能夠是一個函數,也能夠是幾個函數,函數間用「;」隔開便可。好比要彈出兩個警告窗口,即可將「function();」換成
「alert(‘第一個警告窗口!’);alert(‘第二個警告窗口!’);」;而第二個參數「delaytime」則是間隔的時間,以毫秒爲單位,即填寫「5000」,就表示5秒鐘。
倒計時定時器是在指定時間到達後觸發事件,而循環定時器就是在間隔時間到來時反覆觸發事件,二者的區別在於:前者只是做用一次,然後者則不停地做用。
好比你打開一個頁面後,想間隔幾秒自動跳轉到另外一個頁面,則你就須要採用倒計定時器「setTimeout(「function();」,delaytime)」 ,而若是想將某一句話設置成一個一個字的出現,
則須要用到循環定時器「setInterval(「function();」,delaytime)」 。html

獲取表單的焦點,則用到document.activeElement.id。利用if來判斷document.activeElement.id和表單的ID是否相同。
好比:if (「mid」 == document.activeElement.id) {alert();},」mid」即是表單對應的ID。java

 

定時器:
用以指定在一段特定的時間後執行某段程序。c++

JS中定時執行,setTimeout和setInterval的區別,以及l解除方法express

setTimeout(Expression,DelayTime),在DelayTime事後,將執行一次Expression,setTimeout 運用在延遲一段時間,再進行某項操做。
setTimeout(「function」,time) 設置一個超時對象緩存

setInterval(expression,delayTime),每一個DelayTime,都將執行Expression.經常可用於刷新表達式.
setInterval(「function」,time) 設置一個超時對象dom

SetInterval爲自動重複,setTimeout不會重複。jsp

clearTimeout(對象) 清除已設置的setTimeout對象
clearInterval(對象) 清除已設置的setInterval對象函數

 

 

 

略舉兩例。
例1.表單觸發或加載時,逐字輸出字符串


<head>
<meta http-equiv=」Content-Type」 content=」text/html; charset=gb2312″ />
<title>無標題文檔</title>
<script language=」JavaScript」 type=」text/javascript」>
var str = 「這個是測試用的範例文字」;
var seq = 0;
var second=1000; //間隔時間1秒鐘
function scroll() {
msg = str.substring(0, seq+1);
document.getElementByIdx_x_x(‘word’).innerHTML = msg;
seq++;
if (seq >= str.length) seq = 0;
}
</script>
</head>
<body onload=」setInterval(‘scroll()’,second)」>
<div id=」word」></div><br/><br/>
</body>
</html>

 

 

例2.當焦點在輸入框的時候,定時檢查輸入框信息,焦點不在時不執行檢查動做。

<!DOCTYPE html PUBLIC 「-//W3C//DTD XHTML 1.0 Transitional//EN」 「http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd「>
<html xmlns=」http://www.w3.org/1999/xhtml「>
<head>
<meta http-equiv=」Content-Type」 content=」text/html; charset=gb2312″ />
<title>無標題文檔</title>
<script language=」JavaScript」 type=」text/javascript」>
var second=5000; //間隔時間5秒鐘
var c=0;
function scroll() {
c++;
if (「b」 == document.activeElement.id) {
var str=」定時檢查第<b> 「+c+」 </b>次<br/>」;
if(document.getElementByIdx_x_x(‘b’).value!=」"){
str+=」輸入框當前內容爲當前內容爲<br/><b> 「+document.getElementByIdx_x_x(‘b’).value+」</b>」;
}
document.getElementByIdx_x_x(‘word’).innerHTML = str;
}
}
</script>
</head>
<body>
<textarea id=」b」 name=」b」 style=」height:100px; width:300px;」 onfocus=」setInterval(‘scroll()’,second)」></textarea><br/><br/>
<div id=」word」></div><br/><br/>
</body>
</html>

 

 

例3.下面這個是最簡單的例子,定時器時間到達後彈出警告窗口。



<html xmlns=」http://www.w3.org/1999/xhtml「>
<head>
<meta http-equiv=」Content-Type」 content=」text/html; charset=gb2312″ />
<script language=」javascript」>
function count() {
document.getElementByIdx_x_x(‘m’).innerHTML=」計時已經開始!」;
setTimeout(「alert(‘十秒鐘到!’)」,10000)
}
</script>
<body>
<div id=」m」></div>
<input TYPE=」button」 value=」 計時開始」 onclick=」count()」>
</body>
</html>

 

例4:倒計時定時跳轉

 

 

<head>
 <base href=」<%=basePath%>」>

 <title>My JSP ‘ds04.jsp’ starting page</title>

 <span id=」tiao」>3</span>

 <a href=」javascript:countDown」> </a>秒後自動跳轉……
 <meta http-equiv=refresh content=3;url= ‘/ds02.jsp’/>
 <!–腳本開始–>
 <script language=」javascript」 type=」">
function countDown(secs){
tiao.innerText=secs;
if(–secs>0)
setTimeout(「countDown(「+secs+」)」,1000);
}
countDown(3);
</script>
 <!–腳本結束–>

</head>

 

例6:

 

<head> 
   <meta http-equiv=」refresh」 content=」2;url=’b.html’」> 
</head> 
 
例7:
 
<script language=」javascript」 type=」text/javascript」>
setTimeout(「window.location.href=’b.html’」, 2000);
//下面兩個均可以用
//setTimeout(「javascript:location.href=’b.html’」, 2000);
//setTimeout(「window.location=’b.html’」, 2000);
</script>
 
例8:
 
<span id=」totalSecond」>2</span>
<script language=」javascript」 type=」text/javascript」>
 var second = document.getElementByIdx_x(‘totalSecond’).innerHTML;

 

if(isNaN(second)){
 //……不是數字的處理方法
}else{
 setInterval(function(){
  document.getElementByIdx_x(‘totalSecond’).innerHTML = –second;
  if (second <= 0) {
   window.location = ‘b

浪風小園子 -- 比較認真的PHP平臺開發

浪風先分享這麼多,之後會繼續分享個人小工具給你們。分享萬歲,技術永存。

相關文章
相關標籤/搜索