我有一个拥有一个JavaScript计时器倒计时的拍卖网站。出于某种原因,15-20分钟后,此计时器滞后实际时间20-30秒。在1小时的过程中,javascript倒数计时器可以关闭至少2-3分钟。这让用户感到困惑,因为他认为还有2-3分钟的拍卖结束。 一旦一个页面加载服务器给出的拍卖剩余时间是2小时内的任何东西& JavaScript从那里开始倒计时。所以我的问题是 1)为什么在20-30分钟后,javascript倒数计时器滞后实际时间几秒到几分钟? 2)我如何确保计时器同步。我不想使用ajax来获取剩余时间,因为有许多其他ajax正在运行。 我的服务器使用Php。如何同步服务器的javascript倒数计时器
4
A
回答
8
由于您使用的是setTimeout()
或setInterval()
,因此您的计时器滞后。他们不能被信任。使用Date
对象来获取准确的当前时间。
您不需要同步。只需将拍卖结束时间(以UTC为单位)放入日期变量中,然后倒数至此即可。
1
由于在javascript中发生了许多其他事情,JavaScript时间可能会滞后。很大程度上取决于您的特定计时器实现,但Javascript是单线程的,所以任何其他操作都会延迟您的计时器。
与服务器同步的唯一方法是发送请求。你不能消除这一点。但是你可以在一些计数之后而不是每次都发送请求。例如,计时器执行时每分钟发送一次AJAX请求进行同步。您可以通过试验找到正确的同步时间。
相关问题
- 1. 使用历元服务器时间的Javascript倒数计时器
- 2. 使用服务器时间的JavaScript倒数计时器
- 3. JQuery倒计时+服务器与AppEngine的同步
- 4. 服务中的Android倒数计时器
- 5. jQuery倒计时服务器同步经典ASP
- 6. Jquery倒计时服务器同步问题
- 7. 在不同浏览器上同步的javascript倒计时
- 8. JavaScript倒数计时器
- 9. javascript/jquery - 倒数计时器
- 10. Javascript倒数计时器
- 11. 如何同步倒数计时器到所有用户
- 12. 如何倒数计时器
- 13. jQuery的倒计时/服务器端值
- 14. 同步与服务器时间 - jQuery的倒计时插件和PHP
- 15. 如何同步与服务器时间
- 16. PHP/JS与服务器倒计时
- 17. php倒计时服务器端
- 18. 服务器端倒计时脚本
- 19. C#System.Timers倒计时服务器上
- 20. 如何在24/7上为服务设置倒数计时器
- 21. 倒计时计时器与服务器php
- 22. ASP/AJAX - 与服务器计时器同步的客户端计时器
- 23. JavaScript的jQuery倒计时计时器
- 24. 使用服务器端时间完成Javascript倒计时
- 25. 倒计时 - iPhone倒数计时器
- 26. 修复倒计时倒数计时器
- 27. 的Javascript倒数计时器在GMT/UTC
- 28. JavaScript的倒数计时器去NaN
- 29. 低效的JavaScript倒数计时器
- 30. Javascript getDate()倒数计时器的方法
Hello Bergi。你可以分享一个小代码样本来说明如何做到这一点吗?感谢你的帮助。 – Anita 2012-04-26 13:30:21
http://www.sitepoint.com/creating-accurate-timers-in-javascript/中有一个例子。简而言之:每次使用'Date.now()'计算新的超时时间,知道何时应该发生下一个“嘀嗒”。 – Bergi 2012-04-26 15:14:40
Excellet Bergi。这正是我想要的。非常感谢你。 – Anita 2012-04-27 20:23:05