一、小程序离开当前页面时,会遇到清除定时器失效问题
解决方式:
// pages/setInter/index.js
Page({
/**
* 页面的初始数据
*/
data: {
myInterv: '', // 定时器
cont: 0 // 数据
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
const self = this
self.interval(() => {
self.setData({
cont: self.data.cont + 1
})
console.error(self.data.cont)
}, 1000)
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () { // 后台运行清除定时器
const self = this
self.clearTimeInterval(self)
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () { // 关闭清除定时器
const self = this
self.clearTimeInterval(self)
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
},
interval (func, wait) { // 定时器
const self = this
var myInterv = setInterval(func, wait)
self.setData({
myInterv: myInterv
})
},
clearTimeInterval (self) { // 清除定时器
var myInterv = self.data.myInterv
clearInterval(myInterv)
}
})
js中注意:onHide onUnload 生命周期 定时器销毁
<!--pages/setInter/index.wxml-->
<view >定时器:{{cont}}</view>