JS 倒计时问题,手机网页后台运行时,js会暂停39
发布网友
发布时间:2023-10-02 09:51
我来回答
共3个回答
热心网友
时间:2023-11-19 18:20
如果我答得好请给我一点分
在html5中document新增了一个事件 visibilitychange,这个事件在页面前台或后台切换时被触发,你所说的问题就简单了,它也有个对应的属性visibilityState,用于检测当前页面的状态值为hidden还是visible。
解法是,在hidden时记录当前时间,在visible时用当前时间减去之前记录的时间就为当前倒计时需要减去的时间,这也就不需要和后台沟通了,或者你直接在visible时刷新页面也行,下面是小样,你测试一下
var b=getTime();
function getTime()
{
return Date.now();
}
document.addEventListener('webkitvisibilitychange',function()
{
if(document.webkitVisibilityState=='hidden')
{
b=getTime();
}else
{
document.body.appendChild(document.createTextNode('间隔:'+(getTime()-b)))
}
})
document.addEventListener('mozvisibilitychange',function()
{
if(document.mozVisibilityState=='hidden')
{
b=getTime();
}else
{
document.body.appendChild(document.createTextNode('间隔:'+(getTime()-b)))
}
})
热心网友
时间:2023-11-19 18:20
从后台页面那里穿一个参数过来,可以通过URL 当然你有其他办法也行, 然后在首页的window.onload函数读取地址栏的参数window.loaction.href.search='传的值' !=-! 这样就知道用户是从后台来的了 至于你那个后台的setTimeOut 如果已经离开后台那个页面了 后台页面的JS自然就消失了,估计你是想要他不消失这个功能吧? 可以用这个办法检测。
热心网友
时间:2023-11-19 18:21
获取系统最新时间?、
js里用new Date();不行吗?
参考:
http://hi.baidu.com/wjx_5893/item/bc53ecf3aca75a0a85d2783d
setTimeOut是定时函数
理论就执行一次
可以用setInterval 这个是循环执行函数