微信小程序要設(shè)定一個(gè)定時(shí)器有兩種方法
1、setInterval:按照指定的周期(以毫秒計(jì))來(lái)執(zhí)行注冊(cè)的回調(diào)函數(shù)
2、setTimeout:在定時(shí)到期以后執(zhí)行注冊(cè)的回調(diào)函數(shù)
詳情請(qǐng)參閱小程序開發(fā)文檔
setInterval
setTimeout
setInterval和 setTimeout方法有什么區(qū)別
setInterval,指定某個(gè)任務(wù)每隔一段時(shí)間就執(zhí)行一次,也就是無(wú)限次的定時(shí)執(zhí)行表達(dá)式
setTimeout,指定某個(gè)任務(wù)在指定的時(shí)間后執(zhí)行一次表達(dá)式(重要的事情說(shuō)三遍:一次,一次,一次)
PS 及時(shí)回收定時(shí)器
定時(shí)器是全局的,并不是跟頁(yè)面綁定的,當(dāng)小程序從一個(gè)頁(yè)面路由到另一個(gè)頁(yè)面之后,前一個(gè)頁(yè)面定時(shí)器應(yīng)注意手動(dòng)回收。
及時(shí)回收定時(shí)器
clearInterval
clearTimeout
好了,上代碼
setInterval定時(shí)器應(yīng)用,代碼如下(示例):
Page({
data: {
inter: '',
},
/**
* 啟動(dòng)定時(shí)器
*/
startInter : function(){
var that = this;
that.data.inter= setInterval(
function () {
// TODO 你需要無(wú)限循環(huán)執(zhí)行的任務(wù)
console.log('setInterval 每過(guò)500毫秒執(zhí)行一次任務(wù)')
}, 500);
},
/**
* 結(jié)束定時(shí)器
*/
endInter: function(){
var that = this;
that.clearInterval(that.data.inter)
},
/**
* 生命周期函數(shù)--監(jiān)聽頁(yè)面卸載
*/
onUnload: function () {
this.endInter()
},
})
setTimeout 定時(shí)器應(yīng)用,代碼如下(示例):
Page({
data: {
timer : '',
},
/**
* 啟動(dòng)定時(shí)器
*/
startTimer : function(){
var that = this;
that.data.timer = setTimeout(
function () {
// TODO 你需要執(zhí)行的任務(wù)
console.log('startTimer 500毫秒后執(zhí)行一次任務(wù)')
}, 500);
},
/**
* 結(jié)束定時(shí)器
*/
endTimer: function(){
var that = this;
clearTimeout(that.data.timer)
},
/**
* 生命周期函數(shù)--監(jiān)聽頁(yè)面卸載
*/
onUnload: function () {
this.endTimer()
},
})
總結(jié)
感謝大家看完,更多精彩等待下次創(chuàng)作,你最大的支持就是:贊同+評(píng)論+贊賞+...,關(guān)注我。
另外,也歡迎大家關(guān)注我的個(gè)人公眾號(hào) “聊者說(shuō)”。