在日常开发过程中,偶尔会有页面显示倒计时的需求
这个时候要求,当页面切出去或者熄屏等操作后,重新打开,倒计时需要是最新的时间
需要注意的是,对于vue单页面文件来说 document.addEventListener("visibilitychange", ()=>{})是一个全局性事件,要注意避免某些重复操作。
// 页面加载成功之后执行倒计时
getTimeOut(){
clearInterval(this.initTimer)
let millisecond = 500; // 500秒倒计时,这个时间一般从后端拿
this.initTimer = setInterval(() => {
millisecond --
if(millisecond == 0 || millisecond < 1){
clearInterval(this.initTimer)
}
}, 1000);
},
// 页面重新出现之后再次拿最新时间加载倒计时
document.addEventListener("visibilitychange", ()=>{
if(document.visibilityState==="visible"){
// 当页面再次出现之后,进行某些操作
this.getTimeOut() // 执行最新的倒计时
}
if(document.visibilityState==="hidden"){
// 当页面再次出现之后,进行某些操作
}
});