国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

淺談JavaScript的計時器對象

2019-11-19 18:16:07
字體:
來源:轉載
供稿:網友

1、JavaScript計時器,我們可以在設定的時間間隔之后來執行代碼,而不是在函數被調用后立即執行。

計時器類型:

1)一次性計時器:僅在指定的延遲時間之后觸發一次。

2)間隔性觸發計時器:每隔一定的時間間隔就觸發一次。

計時器方法:

1)setInterval() :在執行時,從載入頁面后每隔指定的時間執行代碼。

//語法setInterval(代碼,交互時間);//參數說明:1. 代碼:要調用的函數或要執行的代碼串。2. 交互時間:周期性執行或調用表達式之間的時間間隔,以毫秒計(1s=1000ms)。//返回值:一個可以傳遞給 clearInterval() 從而取消對"代碼"的周期性執行的值。//調用函數格式:(假設有一個clock()函數):setInterval("clock()",1000)//或setInterval(clock,1000)//例子<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>計時器</title><script type="text/javascript"> var int=setInterval(clock, 1000)//調用計時器 function clock(){  var time=new Date();  document.getElementById("clock").value = time; }</script></head><body> <form>  <input type="text" id="clock" size="50" /> </form></body></html>

 2)取消計時器clearInterval():clearInterval() 方法可取消由 setInterval() 設置的交互時間。

//語法clearInterval(id_of_setInterval)//參數說明:id_of_setInterval:由 setInterval() 返回的 ID 值。//例子<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>計時器</title><script type="text/javascript">  function clock(){   var time=new Date();              document.getElementById("clock").value = time;  }// 每隔100毫秒調用clock函數,并將返回值賦值給i   var i=setInterval("clock()",100);</script></head><body> <form>  <input type="text" id="clock" size="50" />  <input type="button" value="Stop" onclick="clearInterval(i)" /> </form></body></html>//每隔 100 毫秒調用 clock() 函數,并顯示時間。當點擊按鈕時,停止時間

3) setTimeout()計時器,在載入后延遲指定時間后,去執行一次表達式,僅執行一次。

//語法setTimeout(代碼,延遲時間);//參數說明:1. 要調用的函數或要執行的代碼串。2. 延時時間:在執行代碼前需等待的時間,以毫秒為單位(1s=1000ms)。//例子1//打開網頁3秒后,在彈出一個提示框<!DOCTYPE HTML><html><head><script type="text/javascript"> setTimeout("alert('Hello!')", 3000 );</script></head><body></body></html>//例子2//當按鈕start被點擊時,setTimeout()調用函數,在5秒后彈出一個提示框<!DOCTYPE HTML><html><head><script type="text/javascript">function tinfo(){ var t=setTimeout("alert('Hello!')",5000); }</script></head><body><form> <input type="button" value="start" onClick="tinfo()"></form></body></html>//例子3//創建一個運行于無窮循環中的計數器,需要編寫一個函數來調用其自身。在下面的代碼,當按鈕被點擊后,輸入域便從0開始計數<!DOCTYPE HTML><html><head><script type="text/javascript">var num=0;function numCount(){ document.getElementById('txt').value=num; num=num+1; setTimeout("numCount()",1000); }</script></head><body><form><input type="text" id="txt" /><input type="button" value="Start" onClick="numCount()" /></form></body></html>

4) 取消計時器clearTimeout(), setTimeout()和clearTimeout()一起使用,停止計時器。

//語法clearTimeout(id_of_setTimeout)//參數說明:id_of_setTimeout:由 setTimeout() 返回的 ID 值。該值標識要取消的延遲執行代碼塊。//例子:添加了一個 "Stop" 按鈕來停止這個計數器<!DOCTYPE HTML><html><head><script type="text/javascript"> var num=0,i; function timedCount(){  document.getElementById('txt').value=num;  num=num+1;  i=setTimeout(timedCount,1000); }  setTimeout(timedCount,1000); function stopCount(){  clearTimeout(i); }</script></head><body> <form>  <input type="text" id="txt">  <input type="button" value="Stop" onClick="stopCount()">//停止按鈕 </form></body></html>

setinterval與settimeout區別:

1)因為setTimeout(表達式,延時時間)在執行時,是在載入后延遲指定時間后,去執行一次表達式,記住,次數是一次;而setInterval(表達式,交互時間)則不一樣,它從載入后,每隔指定的時間就執行一次表達式 所以,完全是不一樣的

2)很多人習慣于將setTimeout包含于被執行函數中,然后在函數外再次使用setTimeout來達到定時執行的目的;這樣,函數外的setTimeout在執行函數時再次觸發setTimeout從而形成周而復始的定時效果。

3)使用的時候各有各的優勢,使用setInterval,需要手動的停止tick觸發。而使用方法中嵌套setTimeout,可以根據方法內部本身的邏輯不再調用setTimeout就等于停止了觸發。

//setTimeout例子showTime();function showTime(){  var day = new Date();  alert("時間是: " + day.toString());  setTimeout("showTime()", 1000);}//setInterval例子setInterval("showTime()", 1000);function showTime(){  var day = new Date();  alert("時間是: " + day.toString());}

這兩種方法可能看起來非常像,而且顯示的結果也會很相似,不過兩者的最大區別就是,setTimeout方法不會每隔1秒鐘就執行一次showTime函數,它是在每次調用setTimeout后過1秒鐘再去執行showTime函數。這意味著如果showTime函數的主體部分需要2秒鐘執行完,那么整個函數則要每3秒鐘才執行一次。而setInterval卻沒有被自己所調用的函數所束縛,它只是簡單地每隔一定時間就重復執行一次那個函數。

如果要求在每隔一個固定的時間間隔后就精確地執行某動作,那么最好使用setInterval,而如果不想由于連續調用產生互相干擾的問題,尤其是每次函數的調用需要繁重的計算以及很長的處理時間,那么最好使用setTimeout。

如果對計時函數不加以處理,那么setInterval將會持續執行相同的代碼,一直到瀏覽器窗口關閉,或者用戶轉到了另外一個頁面為止。不過還是有辦法可以終止setTimeout和setInterval函數的執行。

以上就是小編為大家帶來的淺談JavaScript的計時器對象全部內容了,希望大家多多支持武林網~

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 甘泉县| 定日县| 句容市| 南投市| 海丰县| 松江区| 青河县| 大厂| 青冈县| 瑞金市| 金堂县| 当涂县| 镇原县| 乌海市| 渝北区| 禹城市| 东乡族自治县| 凌源市| 新郑市| 建阳市| 涡阳县| 高清| 西青区| 如东县| 井陉县| 华安县| 兴文县| 石台县| 信阳市| 苗栗市| 临江市| 济源市| 延津县| 贵阳市| 商洛市| 天门市| 宜君县| 海宁市| 达尔| 达尔| 肃南|