一、切换tab页面时
销毁组件前,清除定时器 (index.vue)
beforeDestroy() {
this.clearIntervalFun();
},
methods:{
clearIntervalFun() {
let list = this.$refs.avueData.$refs.container.$refs.subgroup.$refs;
let echartList = [];
for (let key in list) {
if (key.indexOf("list") != -1) {
echartList.push(list[key]);
}
}
echartList.forEach((item) => {
if (!this.validatenull(item[0].checkChart)) {
clearInterval(item[0].checkChart);
}
});
},
}
二、切换网页页面
监听visibilitychange事件,页面隐藏时,清除定时器,页面显示时,加载定时器(vue.index)
created() {
this.getVisualDataFun();
this.addEventListenerVisibilitychange();
},
destroyed() {
this.removeEventListenerVisibilitychange();
},
methods:{
addEventListenerVisibilitychange() {
document.addEventListener("visibilitychange", this.eventHandle);
},
removeEventListenerVisibilitychange() {
document.removeEventListener("visibilitychange", this.eventHandle);
},
eventHandle() {
this.$nextTick(() => {
if (document.hidden) {
//页面隐藏,清除定时器
this.clearIntervalFun();
} else {
//页面显示,重新加载首页
this.reloadFun();
}
});
},
reloadFun() {
this.visible = false;
this.$nextTick(() => {
this.visible = true;
});
},
}