performance.now()vs Date.now()

时间:2015-06-12 04:52:34

标签: javascript time

performance.now()Date.now()之间的区别是什么?

我应该将performance.now()视为Date.now()的替代,因为performace.now()更加一致且独立吗?

2 个答案:

答案 0 :(得分:34)

它们都有不同的用途。

performance.now() 相对于页面加载,并且在数量级上更精确。用例包括基准测试和其他需要高分辨率时间的情况,如媒体(游戏,音频,视频等)

应该注意performance.now()仅适用于较新的浏览器(包括IE10 +)。

Date.now() 相对于Unix纪元(1970-01-01T00:00:00Z)并且取决于系统时钟。自JavaScript开始以来,用例包括相同的旧日期操作。

有关详细信息,请参阅When milliseconds are not enough: performance.nownow 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