JS定時(shí)器的作用
在做項(xiàng)目中難免會(huì)碰到需要實(shí)時(shí)刷新,動(dòng)畫(huà)依次出現(xiàn)等等需求,這時(shí)候就需要使用定時(shí)器。
需要注意的是:定時(shí)器函數(shù)是window調(diào)用的,函數(shù)里面的this指向window。
啟用定時(shí)器
window對(duì)象提供了兩個(gè)方法來(lái)實(shí)現(xiàn)定時(shí)器的效果,分別是window.setTimeout()和window.setInterval。其中前者可以使一段代碼在指定時(shí)間后運(yùn)行;而后者則可以使一段代碼每過(guò)指定時(shí)間就運(yùn)行一次。它們的原型如下:
window.setTimeout(code,millisec);
window.setInterval(code,millisec);
其中,code可以是用引號(hào)括起來(lái)的一段代碼,也可以是一個(gè)函數(shù)名,到了指定的時(shí)間,系統(tǒng)便會(huì)自動(dòng)調(diào)用該函數(shù),當(dāng)使用函數(shù)名作為調(diào)用句柄時(shí),不能帶有任何參數(shù);而使用字符串時(shí),則可以在其中寫(xiě)入要傳遞的參數(shù)。兩個(gè)方法中的第二個(gè)參數(shù)是millisec,表示延時(shí)或者重復(fù)執(zhí)行的毫秒數(shù)。
function test(){
console.log(111);
}
setTimeout(test,500); //0.5s后執(zhí)行
setInterval(test,500); //每隔0.5s執(zhí)行一次
清除定時(shí)器
由于定時(shí)器在調(diào)用時(shí),都會(huì)返回一個(gè)整形的數(shù)字,該數(shù)字代表定時(shí)器的序號(hào),即第多少個(gè)定時(shí)器,所以定時(shí)器的清除要借助于這個(gè)返回的數(shù)字。
定時(shí)器清除的方法:clearTimeout(obj)和clearInterval(obj)。
要清除定時(shí)器,就必須在用定時(shí)器的時(shí)候,定義一個(gè)變量來(lái)記錄定時(shí)器的返回值。如下:
var timer1=setTimeout(test,500);
var timer2=setInterval(test,500);
//清除setTimeout定時(shí)器
clearTimeout(timer1);
//清除setInterval定時(shí)器
clearInterval(timer2);