小程序中有两个定时器:setTimeout与setInterval
setTimeout:可延时回调
setInterval:可定时循环回调
第一次这样使用:
setTimeout(function(){
console.log("延时1秒回调")
},1000)
setInterval(function(){
console.log("每隔2秒回调一次")
},2000)
但性能测试后发现存在定时器未跟随页面回收的问题,这个可能并不影响使用,但优秀的代码,怎能视而不见,同时这个又关系到小程序的评测指标。
仔细阅读文档后,发现定时器是可回收的,需要以下代码
setTimeout
startTimer(){
var timerName = setTimeout(function(){
console.log("延时1秒回调")
},1000)
this.setData({
timerName:timerName
})
},
//在定时器使用完毕后调用此方法
closeTimer(){
clearTimeout(timerName)
}
setInterval
startInterval(){
var intervalName = setInterval(function(){
console.log("每隔2秒回调一次")
},1000)
this.setData({
intervalName:intervalName
})
},
//在定时器使用完毕后调用此方法
closeInterval(){
clearInterval(intervalName)
}