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

首頁(yè) > 語(yǔ)言 > JavaScript > 正文

Javascript中setTimeOut和setInterval的定時(shí)器用法

2024-05-06 16:22:23
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要介紹了Javascript中setTimeOut和setInterval的定時(shí)器用法的相關(guān)資料,需要的朋友可以參考下
 

Javascript的setTimeOut和setInterval函數(shù)應(yīng)用非常廣泛,它們都用來(lái)處理延時(shí)和定時(shí)任務(wù),比如打開(kāi)網(wǎng)頁(yè)一段時(shí)間后彈出一個(gè)登錄框,頁(yè)面每隔一段時(shí)間發(fā)送異步請(qǐng)求獲取最新數(shù)據(jù)等等。但它們的應(yīng)用是有區(qū)別的。

setTimeout() 方法用于在指定的毫秒數(shù)后調(diào)用函數(shù)或計(jì)算表達(dá)式,而setInterval()則是在每隔指定的毫秒數(shù)循環(huán)調(diào)用函數(shù)或表達(dá)式,直到clearInterval把它清除。也就是說(shuō)setTimeout()只執(zhí)行一次,setInterval()可以執(zhí)行多次。兩個(gè)函數(shù)的參數(shù)也相同,第一個(gè)參數(shù)是要執(zhí)行的code或句柄,第二個(gè)是延遲的毫秒數(shù)。
setTimeOut用法
setTimeout函數(shù)的用法如下:

 

復(fù)制代碼代碼如下:

var timeoutID = window.setTimeout(func, [delay, param1, param2, ...]); 
var timeoutID = window.setTimeout(code, [delay]); 

 

timeoutID:定時(shí)器ID號(hào),它可以在clearTimeout()函數(shù)中被用來(lái)清除定時(shí)器。
func:被執(zhí)行的函數(shù)。
code:(替代的語(yǔ)法)一個(gè)被執(zhí)行的代碼串。
delay:延遲的時(shí)間,單位毫秒。如果沒(méi)有指定,默認(rèn)為0。

我們可以使用window.setTimeout或setTimeout,兩個(gè)寫(xiě)法基本一樣,只不過(guò)window.setTimeout將setTimeout函數(shù)作為全局window對(duì)象的一個(gè)屬性來(lái)引用。

應(yīng)用示例:

 

復(fù)制代碼代碼如下:

function timeout(){ 
    document.getElementById('res').innerHTML=Math.floor(Math.random()*100 + 1); 

setTimeout("timeout()",5000); 

 

代碼執(zhí)行時(shí),5秒后調(diào)用timeout()函數(shù),點(diǎn)擊看演示。
setInterval用法
setInterval函數(shù)的參數(shù)及用法和setTimeout函數(shù)一樣,請(qǐng)參照上文的setTimeout函數(shù)的用法介紹。不同的是,setInterval每隔一定的時(shí)間執(zhí)行當(dāng)中的func或code代碼。
應(yīng)用示例:

 

復(fù)制代碼代碼如下:

var tt = 10; 
function timego(){ 
    tt--; 
    document.getElementById("tt").innerHTML = tt; 
    if(tt==0){  
        window.location.href='/'; 
        return false; 
    } 

var timer = window.setInterval("timego()",1000); 

 

函數(shù)timego()定義了頁(yè)面元素#tt顯示的內(nèi)容,當(dāng)tt等于0時(shí),頁(yè)面定向到首頁(yè)。然后我們定義一個(gè)定時(shí)器timer,使用setInterval()每隔1秒調(diào)用一次timego()。這樣timego會(huì)執(zhí)行10次,每次數(shù)字tt會(huì)減1,直到為0。那么如果想停止定時(shí)器,可以使用以下代碼:

 

復(fù)制代碼代碼如下:

window.clearInterval(timer);  

 

代碼執(zhí)行時(shí),10秒后頁(yè)面跳轉(zhuǎn)到首頁(yè)

其實(shí)setTimeout()也可以實(shí)現(xiàn)每隔一段時(shí)間重復(fù)執(zhí)行某個(gè)函數(shù),但我們還是簡(jiǎn)單的區(qū)別使用setTimeOut和setInterval。另外javascript都是以單線程的方式運(yùn)行于瀏覽器的javascript引擎中,實(shí)際應(yīng)用中復(fù)雜的任務(wù)中需要排隊(duì)執(zhí)行,這就可能導(dǎo)致定時(shí)器時(shí)間不準(zhǔn),這個(gè)問(wèn)題在大型應(yīng)用中需要考慮,本文不做深究。

以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 宿松县| 繁昌县| 高唐县| 盐山县| 仙游县| 长顺县| 邯郸县| 通辽市| 天长市| 绥中县| 南乐县| 宣化县| 伊川县| 东山县| 吉林省| 昌邑市| 绿春县| 读书| 彭山县| 余庆县| 尼勒克县| 尚义县| 雅江县| 南陵县| 甘泉县| 浏阳市| 绥芬河市| 玛纳斯县| 光泽县| 休宁县| 陆丰市| 中阳县| 陵川县| 南安市| 朔州市| 金沙县| 江陵县| 博乐市| 九江市| 湛江市| 阿图什市|