performance.now()
和之间有什么区别Date.now()
?
我应该考虑performance.now()
替代它,Date.now()
因为performace.now()
它更加一致和独立吗?
performance.now()
和之间有什么区别Date.now()
?
我应该考虑performance.now()
替代它,Date.now()
因为performace.now()
它更加一致和独立吗?
performance.now
提供了更精确的计时(亚毫秒级精度)。
Answers:
它们都有不同的目的。
performance.now()
是相对于网页加载的,并且在数量级上更为精确。用例包括基准测试和其他需要高分辨率时间的情况,例如媒体(游戏,音频,视频等)
请注意,performance.now()
仅在较新的浏览器(包括IE10 +)中可用。
Date.now()
是相对于Unix纪元(1970-01-01T00:00:00Z)并且依赖于系统时钟。自JavaScript开始以来,用例就包括相同的旧日期操作。
有关更多信息,请参见毫秒数不够:performance.now
和now
方法(Internet Explorer)-MSDN。
正式的W3C规范可在此处找到:高分辨率时间API
Date.now()
返回自1970年1月1日UTC以来经过的毫秒数,performance.now()
返回毫秒数,从performance.timing.navigationStart
文档的导航开始到performance.now()
调用,以小数部分为微秒。Date.now()
和之间的另一个重要区别performance.now()
是后者单调递增,因此两个调用之间的区别永远不会为负。
为了更好地理解,请访问链接。
Date.now()
返回自1970年1月1日00:00:00 UTCperformance.now()
以来经过的毫秒数,返回自任意纪元以来经过的毫秒/微秒数。基本上,performance.now()
仅应在要测量两个时间点之间的相对距离而不是它们在时间上的“绝对”位置时使用。