uni-app?中清除定時(shí)器實(shí)現(xiàn)方法詳解
JS之延時(shí)器和定時(shí)器
注意:
無(wú)論是獲取短信碼,還是在活動(dòng)頁(yè)輪詢獲取當(dāng)前活動(dòng)最新信息,都需要用到定時(shí)器。但是,定時(shí)器如果不及時(shí)合理地清除,會(huì)造成業(yè)務(wù)邏輯混亂甚至應(yīng)用卡死的情況。
uni-app 中在某個(gè)頁(yè)面中啟動(dòng)定時(shí)器后,一定要在頁(yè)面關(guān)閉時(shí)將定時(shí)器清除掉。即在頁(yè)面卸載(關(guān)閉)的生命周期函數(shù)里,清除定時(shí)器。
參考方法定時(shí)器的方法定時(shí)器一般有兩個(gè)
1)setTimeout();//n毫秒后執(zhí)行一次
2)setInterval();//每隔n秒執(zhí)行一次
這兩個(gè)方法都有個(gè)返回值,返回一個(gè)定時(shí)器id,可以定義一個(gè)變量接收
清除定時(shí)器方法setTimeout()對(duì)應(yīng)的是 clearTimeout(id);
setInterval()對(duì)應(yīng)的是 clearInterval(id);
例如:
var time = setInterval('lunRight()',3000);//自動(dòng)輪播 box.onmouseover=function(){ clearInterval(time);}//鼠標(biāo)移入輪播圖時(shí)取消自動(dòng)輪播 var i = setTimeout(function(){ },1000); //setTimeout 1000ms后執(zhí)行1次 clearTimeout(i); //清除Timeout的定時(shí)器,傳入id(創(chuàng)建定時(shí)器時(shí)會(huì)返回一個(gè)id)若沒(méi)有加判斷條件和將timer = null,會(huì)導(dǎo)致頁(yè)面卸載的時(shí)候無(wú)法清空定時(shí)器。
onUnload:function(){ if(this.timer) { //在頁(yè)面卸載時(shí)清除定時(shí)器有時(shí)會(huì)清除不了,可在頁(yè)面跳轉(zhuǎn)時(shí)清除clearInterval(this.timer); this.timer = null; } }優(yōu)化:清除時(shí)機(jī)(在頁(yè)面卸載時(shí)清除定時(shí)器有時(shí)會(huì)清除不了,可在頁(yè)面跳轉(zhuǎn)時(shí)清除)
clearMyTimer:function(){ if(timer) {console.log('check-清除定時(shí)器'); clearInterval(timer); timer = null; }},logout:function(){ _self.sendRequest({url : 'user/logout',data : { mobile : _self.userPhone},success:function(res){ _self.clearSession();//清空token _self.clearMyTimer();//清除定時(shí)器 uni.reLaunch({url: '/pages/login2/login2' })},fail:function(e){},complete:function(){} })},以上就是uni-app 中清除定時(shí)器的詳細(xì)內(nèi)容,更多關(guān)于uni-app 清除定時(shí)器的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
