准确的定时器类

时间:2012-01-01 04:53:42

标签: c# asp.net .net

我需要一个计时器用于我正在制作的网站。我之前使用过Timer(仅限Windows Forms和WPF应用程序) - 而不是Web开发。所以我不太确定哪个Timer最适合在网页中使用,也是最准确的。

我有一些要求,即:

  1. 必须尽可能准确
  2. 它必须是基于时间段的定时器,即:2:00:00
  3. 有点像这些计时器如何在投标网站上工作。

    我不是在寻找任何样品(虽然如果你在某处铺设了一些东西,我将不胜感激) - 我只是不确定在哪里看,或者哪个是最适合这份工作的。

2 个答案:

答案 0 :(得分:2)

如果通过Web开发表示JavaScript,您可以使用Date对象以毫秒为单位获取当前时间。

准确度取决于浏览器和/或设备。

以下是使用它进行性能分析的示例:

var startTime = new Date().getTime();
// some long running operation
var endTime = new Date().getTime();
var ellapsedMilliseconds = endTime - startTime;

答案 1 :(得分:1)

  

有点像这些计时器如何在投标网站上工作。

这样的计时器将使用大致准确的JavaScript客户端脚本来生成时钟,但结果需要在服务器端验证才是值得信赖的(例如,您不希望我向您发送HTTP请求说我真的 eBay项目的最后一个竞标者,而没有检查它是否是我无法欺骗的东西。)

一个简单的计时器可以依靠setTimeout()setInterval()。它们在任何方面都不是真正准确,但是它们会在大约足够接近大多数用途的时间点火。

执行更新客户端时钟的相当准确的客户端倒计时:

  • 设置开始日期变量
  • 使用setInterval()
  • 每100毫秒检查一次当前日期
  • 比较差异并查看是否已经过了一段时间
  • 在时间段过去后执行一些操作(并确保调用clearInterval()

同样,如果您希望它们具有防篡改功能,必须验证您的计时器结果服务器端。您可能会定期与服务器异步通信,或者只是在倒计时时与服务器进行异步通信。