功能需求:
每隔1分钟获取服务器端数据并展示在前端小程序页面上。
wxml忽略。
js:
data:{
//前段循环获取net数组的内容,展示到前段
net:[],
//用于存放setinterval返回的id
intervalnum:null
},
// 用于线路占用监控
get_net30(){
wx.request({
url: ‘https://yunwei.hbunion.com/network/wx_net_main30_chart.php’,
method:’GET’,
data:null,
dataType:’json’,
//由于使用箭头函数,所以其中可以使用this变量。
success:(res)=>{
//刷新data中定义的数组net
this.setData({
net:res.data
})
}
})
},
//小程序加载时就获取后端数据
onLoad(options) {
this.get_net30()
},
//点击当前tab时开始定时器。
onShow() {
//判断intervalnum变量是否为true,空值是false。
if(this.data.intervalnum){
//如果开始计时前,改值已经有了,停止执行之前的setinterval
clearInterval(this.data.intervalnum)
}
this.setData({
//开始计时。
intervalnum:setInterval(()=>{this.get_net30()},60000)
})
},
onHide() {
//离开tab时,停止执行setinterval
if(this.data.intervalnum){
clearInterval(this.data.intervalnum)
}
},
为何用这种写法?
intervalnum:setInterval(()=>{this.get_net30()},60000)
如果改为这样可以么?
intervalnum=setInterval(this.get_net30,60000)