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