javascript写的倒计时,一秒一秒的倒计,但在移动端里,手机黑屏或锁屏,js会停止,怎么解决?
javascript写的倒计时,一秒一秒的倒计,原理是settimeout,一秒一秒的减,然后填数字到相应的地方,但在移动端里,手机黑屏或锁屏,js会停止,再打开,倒计时...
javascript写的倒计时,一秒一秒的倒计,原理是settimeout,一秒一秒的减,然后填数字到相应的地方,
但在移动端里,手机黑屏或锁屏,js会停止,再打开,倒计时不准了,怎么解决?
试过让后台传我,但要求是不刷新的情况下倒计时是准的! 展开
但在移动端里,手机黑屏或锁屏,js会停止,再打开,倒计时不准了,怎么解决?
试过让后台传我,但要求是不刷新的情况下倒计时是准的! 展开
1个回答
展开全部
你把setTimeout包装下就好
然後在调用你包装的函数时记录当前时间, 并计算出要达到的时间
之後启动定时器, 并在触发定时时重新获取当前时间, 算出正确的差距, 如果没到指定时间就再次设定定时器
为了防止你从锁屏切回来後倒计时变动延迟过大, 你每次设定定时器可以间隔上5, 600毫秒
然後在调用你包装的函数时记录当前时间, 并计算出要达到的时间
之後启动定时器, 并在触发定时时重新获取当前时间, 算出正确的差距, 如果没到指定时间就再次设定定时器
为了防止你从锁屏切回来後倒计时变动延迟过大, 你每次设定定时器可以间隔上5, 600毫秒
追问
这个办法我倒是用过,但应该不是最好的办法!
你说的包装settimeout是什么意思?
追答
就是说你一次写好, 以後就不用调用setTimeout, 包括关心它在不同浏览器的实现差异了
好不好的话, 其实它简单的包装也就10来行, 然後也能较为优雅的调用了
比如
SmartTimeout(5000,function()
{
//更新元素状态
},function()
{
//结束定时
})
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询