最近开发微信内嵌h5页面时遇到一个问题,ios手机锁屏倒计时没有走,翻阅了一些资料,解决了这个问题:
刚开始代码是:
let seconds = 120;
this.time = setInterval(() => {
seconds --;
this.verificationContent = '倒计时' + seconds + 's';
if (seconds === 0) {
clearInterval(this.time);
this.time = 0;
}
})
后来我添加了meta标签:
- 可以在meta里进行设置,设置页面nocache,每次访问次页面,均需要从服务器重新获取,而不是使用缓存中读取
- expires设定过期时间,一旦过期就必须请求服务器,
- expries出现在http-equiv属性中,使用content属性表示页面缓存的过期时间
expries=0,缓存过期前的分钟数。若用户在页面过期前返回该页面,就会显示缓存的版本页
<meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0">
但是仍然没有起作用,后来用获取系统时间做差值,解决了这个问题:
let nowTime = (new Date).getTime();
this.time = setInterval(() => {
let currTime = (new Date).getTime();
let seconds = 120 - Math.floor((currTime - nowTime)/1000);
this.verificationContent = '倒计时' + seconds + 's';
if (seconds === 0) {
clearInterval(this.time);
this.time = 0;
}
})