JS定時(shí)器的作用
在做項(xiàng)目中難免會碰到需要實(shí)時(shí)刷新,動畫依次出現(xiàn)等等需求戈二,這時(shí)候就需要使用定時(shí)器祥山。
需要注意的是:定時(shí)器函數(shù)是window調(diào)用的淘这,函數(shù)里面的this指向window拟逮。
啟用定時(shí)器
window對象提供了兩個(gè)方法來實(shí)現(xiàn)定時(shí)器的效果撬统,分別是window.setTimeout()和window.setInterval。其中前者可以使一段代碼在指定時(shí)間后運(yùn)行敦迄;而后者則可以使一段代碼每過指定時(shí)間就運(yùn)行一次恋追。它們的原型如下:
window.setTimeout(code,millisec);
window.setInterval(code,millisec);
其中凭迹,code可以是用引號括起來的一段代碼,也可以是一個(gè)函數(shù)名苦囱,到了指定的時(shí)間嗅绸,系統(tǒng)便會自動調(diào)用該函數(shù),當(dāng)使用函數(shù)名作為調(diào)用句柄時(shí)撕彤,不能帶有任何參數(shù)鱼鸠;而使用字符串時(shí),則可以在其中寫入要傳遞的參數(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í)睦裳,都會返回一個(gè)整形的數(shù)字,該數(shù)字代表定時(shí)器的序號撼唾,即第多少個(gè)定時(shí)器廉邑,所以定時(shí)器的清除要借助于這個(gè)返回的數(shù)字。
定時(shí)器清除的方法:clearTimeout(obj)和clearInterval(obj)倒谷。
要清除定時(shí)器蛛蒙,就必須在用定時(shí)器的時(shí)候,定義一個(gè)變量來記錄定時(shí)器的返回值渤愁。如下:
var timer1=setTimeout(test,500);
var timer2=setInterval(test,500);
//清除setTimeout定時(shí)器
clearTimeout(timer1);
//清除setInterval定時(shí)器
clearInterval(timer2);