首先,移动端浏览器在后台运行或手机黑屏的情况下页面js是不会执行的,在页面有倒计时的情况下问题就出现了,中间离开这段时间的时间差要怎么计算呢?
其实这个问题也是很简单,之前钻到牛角尖,非要监听一个浏览器离开事件,记录当前时间,然后在浏览器在打开的时候记录当前时间,这样这个时间差就算出来了,好像没什么问题。但在写的过程中发现这个事件根本没用, 网上查了很多资料,也都是这种写法,所以就换一种思路。
1.记录页面初次进入的时间 t1;
2.在定时器里面每隔一秒记录当前时间t2;
3.t2 -t1 就是这个时间差。
提醒一点 一般在倒计时里面都是有一个变量time;这个time--就会出现倒计时的效果,在这里 time-- 其实就是t2 - t1;
附上代码
function beginCountDown(cd){
//倒计时
var num=cd;
var t1 = parseInt(new Date().getTime()/1000);
btn_countDown=setInterval(function(){
var t2 = parseInt(new Date().getTime()/1000);
var t_time = (t2-t1);
if(t_time <= num){
return $('.timeout').html(num - t_time +'秒');
}else{
clearInterval(btn_countDown);
}
},1000);
}