网页计时器停滞问题

在手机网页写了一个计时器,比如我用手机进入了这个网页,开始倒计时,倒计时3分钟,这个时候我从这个网页切出去了(home键或者手机锁屏),等过个2分钟后,再打开倒计时页面,这个时候显示倒计时仍然还有2分30秒,理论上应该是倒计时只剩1分钟才对啊,请问各位大神有没有遇到这样的问题,应该怎么解决呢??有没有什么好的思路和呢??感谢!!!

阅读 4k
4 个回答
新手上路,请多包涵

页面进入后台时候js不执行,计时器就不会走了。看你对倒计时要求高不高,不高可以监听页面切回来时候用当前时间戳减去倒计时开始时间戳;如果要求高,后端服务器进行倒计时,监听页面切回来时候从后台取回到倒计时时间

通常的思路:每隔1s减1s,误差会累计,会被打断。

换个思路: 每隔1s,用结束时间减当前时间,误差仅存在于这一次定时器的误差。

新手上路,请多包涵

开始倒计时的时候记录当前的本地时刻var start = Date.now()

通过setTimeout每一次计算当前时刻与开始时刻之间的差值var walkTime = Date.now() - start

页面切出去不影响wakeTime的准确性,因为不是通过timeout定时器的时间决定,而是其中回调函数的执行的时间。

手机端切出的话视系统和机型,浏览器等因素而定,可能会挂起导致js不执行,就像上面说的,可以提前设好结束时间,然后用结束时间减当前时间来进行计算.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题