高效秒表

2024-06-19

您好,我正在用 javascript 编写一个秒表实用程序,我有一个关于效率和开销的问题。我考虑过两种制作秒表的方法:

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

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

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


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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

高效秒表 的相关文章

随机推荐

  • 为什么 PostgreSQL 不能做这个简单的 FULL JOIN 呢?

    这是包含 2 个表的最小设置a and b每行 3 行 CREATE TABLE a id SERIAL PRIMARY KEY value TEXT CREATE INDEX ON a value CREATE TABLE b id SE
  • 使用 xlib 在屏幕顶部绘图

    我想在屏幕上的所有窗口顶部绘制一些图元 我在 C 中找到了一些代码并尝试将其移植以使用 python 的 xlib from Xlib display import Display from Xlib import X from Xlib
  • 使用 for 循环读取文件时跳过行

    我试图找出一种方法 如果第一行中的条件为真 则跳过文件中的接下来两行 有什么好的方法可以做到这一点吗 这是我到目前为止所拥有的 def main file open r C Users test Desktop test2 txt r ct
  • 工作天蓝色日志记录设置

    我尝试设置跟踪日志记录有一段时间了 但就是无法让它正常工作 关于这个主题有这么多错误 过时的文章并没有帮助 但请有人给我一个良好且实用的设置 用于 Azure 1 6 的跟踪日志记录和查看 我想要做的就是能够从我的应用程序捕获和查看跟踪消息
  • 在 Primefaces 中以编程方式创建命令按钮

    我正在尝试创建一个带有输入文本和命令按钮的动态表单 一切正常 但是当我单击命令按钮时 永远不会调用操作侦听器 请提出我做错了什么或者这是否是 PF 或 Mojarra 的错误 代码如下 panel new Panel panel setHe
  • 如果 free() 知道我的数组的长度,为什么我不能在自己的代码中请求它?

    我知道将动态分配的数组的长度传递给操作它们的函数是一个常见的约定 void initializeAndFree int anArray size t length int main size t arrayLength 0 scanf d
  • catcomplete 的文档

    我只是想找到 catcomplete 的文档 我需要如何使用 renderItem 的手册 我找到了这个http jqueryui com autocomplete categories http jqueryui com autocomp
  • 从视频生成缩略图 - ios7

    我用这个作为参考 从视频 URL 或 iPhone SDK 中的数据获取缩略图 https stackoverflow com a 6027285 1145339 该方法使用 MPMoviePlayerController 类而不是 AVF
  • TFS 构建代理在 Nuget Restore 上失败:.Net Core + VS 2017 + 私有 TFS Feed

    我有 一个 NET Core 应用程序 针对 VS 2017 进行了修改并使用 TFS Feed 当它在VS 2015 NuGet restore工作正常 现在使用VS 2017 NuGet restore它不起作用返回Failed to
  • 如果可空类型为空,如何运行代码块?

    在 Kotlin 中 如果对象不为 null 我可以运行代码 如下所示 data let execute this block if not null 但是如果对象为空 我该如何执行代码块呢 您可以使用elvis操作员 https kotl
  • 使用包管理器时如何管理 Perl 模块?

    A 最近的问题 https stackoverflow com questions 397817 unable to find perl modules in intrepid ibex ubuntu这让我开始思考 在我尝试过的大多数 Li
  • PHP-将字符串转换为unicode

    我在做这个工作 source mb convert encoding test unicode utf 8 source unpack C source var dump source return array size 8 1 gt in
  • 如何实现右边缘倾斜的 div? [复制]

    这个问题在这里已经有答案了 我几天来一直在寻找使 div 的右边缘倾斜 45 度的代码 这是我特别想要得到的图像示例 似乎有很多 倾斜边缘 div 的示例 但我找不到任何具有特定右侧倾斜的示例 我花了很多时间试图改变其他人的代码 但结果却一
  • xsl:character-map 来替换特殊字符

    给定一个值为
  • 输入类型 = AngularJS 中的数字验证

    我正在尝试验证 lt input type number gt 通过使用输入 数字 AngularJS 模块 ng 的指令 当使用数字类型的输入时 最大 或最小 属性设置为数字 例如
  • Express Mongoose DB.once('open')无法执行回调函数

    exports c 39 function req res var mongoose require mongoose mongoose createConnection mongodb localhost cj var db mongoo
  • 编译错误:只有赋值、调用、递增、递减和新对象表达式可以用作语句[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 string cipherData byte cipherbytes byte plainbytes byte plainbyte
  • LightGBM:继续训练模型

    我正在使用交叉验证来训练模型 如下所示 classifier lgb Booster params params train set lgb train set result lgb cv init model classifier par
  • 如何暂停或恢复 celery 任务?

    我的项目中有一项要求 客户可以暂停或恢复正在挂起的流程 而不是流程流程 我在用网络套接字显示芹菜任务结果 但在暂停 恢复时我不明白如何设计代码 我想到的唯一方法就是revoke暂停请求中的任务 同时保留数据撤销的过程在缓存中 并稍后在res
  • 高效秒表

    您好 我正在用 javascript 编写一个秒表实用程序 我有一个关于效率和开销的问题 我考虑过两种制作秒表的方法 1 存储开始日期并不断测量自该日期以来经过的毫秒数 2 创建一个整数并按设定的时间间隔递增其值 我想知道哪个最有效 另外