当前位置: 首页 > 面试题库 >

JavaScript中的微秒计时

冷正青
2023-03-14
问题内容

JavaScript中是否有具有微秒分辨率的计时功能?

我知道Chrome的timer.js,希望能够为其他友好的浏览器提供解决方案,例如Firefox,Safari,Opera,Epiphany,Konqueror等。我对支持任何IE均不感兴趣,但可以提供包括 IE 在内的_ 答案受欢迎的。

(鉴于JS中毫秒级计时的准确性很差,因此我不屏息!)

更新:timer.js宣传微秒分辨率,但仅将毫秒读数乘以1,000。通过测试和html" target="_blank">代码检查验证。失望了 :[


问题答案:

正如Mark Rejhon的答案所暗示的那样,现代浏览器中提供了一个API,该API可将亚毫秒分辨率的计时数据公开给脚本又名window.performance.now()

now()``Date.getTime()在两个重要方面优于传统:

  1. now()是具有毫秒级分辨率的双精度数,代表自页面导航开始以来的毫秒数。它以分数形式返回微秒数(例如,值1000.123为1秒和123微秒)。

  2. now()在单调增加。因为这是重要的Date.getTime()可可能是跳跃式前进或后退,甚至在随后的调用。值得注意的是,如果OS的系统时间已更新(例如原子时钟同步),Date.getTime()则也会更新。 now()保证总是单调增加,因此它不受操作系统的系统时间的影响-它将始终是挂钟时间(假设挂钟不是原子钟…)。

now()可几乎每一个地方,用在new Date.getTime()+ new DateDate.now()是。唯一的例外是,Datenow()时代不混合,如Date基于UNIX的时期(自1970年以来的毫秒数),而now()就是因为你的页面的导航启动(所以它会远小于毫秒数Date)。

now()在Chrome稳定版,Firefox15+和IE10中受支持。。



 类似资料:
  • 问题内容: 在我们的应用程序的Linux构建中,我需要一个用于嵌入式探查器的高分辨率计时器。我们的探查器可测量的范围与单个功能一样小,因此其计时器精度必须高于25纳秒。 以前,我们的实现使用内联汇编和rdtsc操作直接从CPU查询高频计时器,但这是有问题的,需要经常重新校准。 因此,我尝试使用该函数来查询CLOCK_PROCESS_CPUTIME_ID。文档声称这给了我纳秒级的计时,但是我发现单次

  • 本文向大家介绍Javascript实现秒表计时游戏,包括了Javascript实现秒表计时游戏的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了javascript实现秒表计时游戏的具体代码,供大家参考,具体内容如下 一、说明 本游戏页面设计分为左右两栏。左上为跑马灯,左下为计时器和”START”按钮;右上为排行榜,右下为游戏规则说明。 跑马灯用的是定时器,循环走一遍。计时器是从”00

  • 我想通过CSVRecordReader将以下包含以微秒为单位的时间戳的CSV内容转换为通过AvroRecordSetWriter的AvroRecord: 我使用以下Avro模式: 但是CSVRecordReader似乎将微秒解释为毫秒,因此AvorRecordSetWriter的输出包含另外三个零: 时间戳字段将假定为自epoch(格林威治时间1970年1月1日午夜)以来的毫秒数https://n

  • 本文向大家介绍javascript实现倒计时(精确到秒),包括了javascript实现倒计时(精确到秒)的使用技巧和注意事项,需要的朋友参考一下 代码相当简单实用,这里就不多废话了,小伙伴们简单看下就能明白 以上所述就是本文的全部内容了,希望大家能够喜欢。

  • 这个问题我已经研究了一段时间,但我只能得到秒数,下面是给我的说明:编写一个程序,从代表纳秒数的标准输入中读取一个非负整数。然后,程序编写一行输出,给出等效的天、小时、分钟、秒、毫秒、微秒和纳秒的数量。例如,输入为123456789123456789。则输出为:123456789123456789纳秒等于1428天、21小时、33分钟、9秒、123毫秒、456微秒和789纳秒。这是我写的: }

  • 本文向大家介绍PHP中使用微秒计算脚本执行时间例子,包括了PHP中使用微秒计算脚本执行时间例子的使用技巧和注意事项,需要的朋友参考一下 在PHP中,大多数的时间格式都是以UNIX时间戳表示的,而UNIX时间戳是以s(秒)为最小的计量时间的单位。这对某些应用程序来说不够精确,所以可以调用microtime()返回当前UNIX时间戳和微妙数。该函数的原型如下: 可以为该函数提供一个可选的布尔型参数,如