您好我正在使用javascript编写秒表实用程序,我对效率和开销有疑问。我有两种方法考虑制作秒表:
1.存储开始日期并不断测量自该日期以来的毫秒数。
2.创建一个整数并以设定的间隔递增其值。
我想知道哪个是最有效的。此外,我不确定选项#2是否会非常准确,如果有人对此有任何意见也会很棒。
答案 0 :(得分:3)
选项2不准确,尤其是如果您有一个带有其他javascript用于其他目的的页面。采用第一种方法。
答案 1 :(得分:3)
正如其他人所说的那样,请选择#1。如果你想要一个每秒(或分钟或其他)滴答的时钟,你应该估计到下一个“滴答”的时间,以便在正确的时间之后几毫秒调用 setTimeout ,例如在下一整秒之后运行:
var d = new Date();
var interval = 1020 - d.getMilliseconds();
setTimeout(fn, interval);
这样,如果一个呼叫的执行因系统忙而延迟,则下一个呼叫仍应在下一整秒后约20ms被调用。