javascript写的倒计时,一秒一秒的倒计,但在移动端里,手机黑屏或锁屏,js会停止,怎么解决?

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

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式