performance.now()
和Date.now()
之间的区别是什么?
我应该将performance.now()
视为Date.now()
的替代,因为performace.now()
更加一致且独立吗?
答案 0 :(得分:34)
它们都有不同的用途。
performance.now()
相对于页面加载,并且在数量级上更精确。用例包括基准测试和其他需要高分辨率时间的情况,如媒体(游戏,音频,视频等)
应该注意performance.now()
仅适用于较新的浏览器(包括IE10 +)。
Date.now()
相对于Unix纪元(1970-01-01T00:00:00Z)并且取决于系统时钟。自JavaScript开始以来,用例包括相同的旧日期操作。
有关详细信息,请参阅When milliseconds are not enough: performance.now
和now
method (Internet Explorer) - MSDN。
官方的W3C规范可以在这里找到:High Resolution Time API
答案 1 :(得分:13)
Date.now()
返回自1970年1月1日00:00:00 UTC以来经过的毫秒数,performance.now()
返回小数部分的毫秒数,来自performance.timing.navigationStart
,文档导航的开始,到performance.now()
调用。 Date.now()
和performance.now()
之间的另一个重要区别是后者是单调递增的,因此两次调用之间的差异永远不会是负面的。
为了更好地理解,请访问link。