实现

说白了,在 onShow() / onHide() 生命周期函数中注册 定时器 即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
Page({


/**
* 页面的初始数据
*/
data:
{
realTime: null,//实时数据对象(用于关闭实时刷新方法)
},


/**
* 生命周期函数--监听页面显示
*/
onShow: function()
{

/**
* 防止用户拿不到最新数据(因为页面切换会重新计时)
* 无条件请求一次最新数据
*/
console.log('请求接口:刷新数据(无条件执行)')


/**
* 每隔一段时间请求服务器刷新数据(客户状态)
* 当页面显示时开启定时器(开启实时刷新)
* 每隔1分钟请求刷新一次
* @注意:用户切换后页面会重新计时
*/
this.data.realTime = setInterval(function()
{

// 请求服务器数据
console.log('请求接口:刷新数据')

// 反馈提示
wx.showToast({
title: '数据已更新!'
})

}, 60000)//间隔时间

// 更新数据
this.setData({
realTime:this.data.realTime,//实时数据对象(用于关闭实时刷新方法)

})

},



/**
* 生命周期函数--监听页面隐藏
*/
onHide: function()
{

/**
* 当页面隐藏时关闭定时器(关闭实时刷新)
* 切换到其他页面了
*/
clearInterval(this.data.realTime)

},

})