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

首頁 > 編程 > JavaScript > 正文

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

2019-11-20 12:16:29
字體:
供稿:網(wǎng)友

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

setTimeout() 方法用于在指定的毫秒數(shù)后調(diào)用函數(shù)或計(jì)算表達(dá)式,而setInterval()則是在每隔指定的毫秒數(shù)循環(huán)調(diào)用函數(shù)或表達(dá)式,直到clearInterval把它清除。也就是說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ù)中被用來清除定時(shí)器。
func:被執(zhí)行的函數(shù)。
code:(替代的語法)一個(gè)被執(zhí)行的代碼串。
delay:延遲的時(shí)間,單位毫秒。如果沒有指定,默認(rèn)為0。

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

應(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ù)一樣,請參照上文的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()定義了頁面元素#tt顯示的內(nèi)容,當(dāng)tt等于0時(shí),頁面定向到首頁。然后我們定義一個(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秒后頁面跳轉(zhuǎn)到首頁

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

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 衡阳县| 芒康县| 化德县| 临颍县| 宁城县| 平谷区| 聂拉木县| 河西区| 曲靖市| 宁夏| 昭通市| 济南市| 金乡县| 衡阳县| 通河县| 大荔县| 福清市| 腾冲县| 藁城市| 马龙县| 原阳县| 天台县| 福贡县| 青阳县| 昌宁县| 道孚县| 泰来县| 灯塔市| 资兴市| 麻栗坡县| 嫩江县| 五指山市| 枣阳市| 开封县| 河北省| 金华市| 垫江县| 文水县| 玉田县| 沿河| 屏东市|