js倒计时不准

(手机端h5)在软件上可以做任务,任务按钮上有倒计时时间,现在是我切换网页后再回来倒计时是不准确的,会慢。怎么办??

阅读 14.1k
7 个回答

不要用 时间差 - 秒数 来计算剩余时间
要用结束时间 - 系统当前时间 来计算
当然 系统当前时间可能不准确 可以和服务器做个同步

反正我让后台传时间做定时器,用new date()获取的是用户手机设置的时间把

前端的计时逻辑永远不会准,即便你初始化时间采用服务器时间。

因为网络传输误差你不知道,同时setTimeout和setInterval并不会非常精确,所以不要依赖前端计时器来处理重要逻辑,需要结合后台来保障。

定时器本身就不准啊,timeout是在限定时间内,interval是在限定时间后。

  1. 当你的网页没有处于被浏览时,这个网页的js不会运行或者暂时阻塞,这是浏览器为了节省资源的行为,各个浏览器做法都不大一样.
  2. 即使你的js正在运行,定时器也不会是准确的。setTimeout是基于事件循环的,它只表明任务执行之前的最短时间。
  3. 如果你需要获得准确的时间,建议还是使用Date.now();

JS时间不准。这不是很正常嘛!好像opera挺准。用的人不多。
前段时间还碰到了一个更加奇怪的问题。
就是safari把整个页面休眠了(我的猜测??)。如果打开新的标签页。
原来页面所有的JS都不会继续运行。如果切换回来。JS会继续执行。。
这个问题好奇葩。

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