6

嗨,我正在用 javascript 编写秒表实用程序,我对效率和开销有疑问。我考虑过两种制作秒表的方法:

1.存储开始日期并不断测量自该日期以来的毫秒数。

2.创建一个整数并以设定的间隔递增其值。

我想知道哪个最有效。另外,我不确定选项 #2 是否非常准确,如果有人对此有任何意见,那也很棒。

4

2 回答 2

3

选项 2 将不准确,特别是如果您有一个带有其他 javascript 用于其他目的的页面。采用第一种方法。

于 2011-08-04T03:40:16.067 回答
3

正如其他人所说,选择#1。如果您想要一个每秒(或分钟或其他任何时间)滴答的时钟,您应该估计下一个“滴答”的时间,以便在正确的时间后几毫秒调用setTimeout ,例如在下一整秒之后运行:

var d = new Date();
var interval = 1020 - d.getMilliseconds();
setTimeout(fn, interval);

这样,如果一个调用的执行因系统繁忙而延迟,则下一个调用仍应在下一整秒后约 20 毫秒被调用。

于 2011-08-04T03:59:25.027 回答