当前位置:  开发笔记 > 编程语言 > 正文

jQuery/javascript event.timestamp不起作用

如何解决《jQuery/javascriptevent.timestamp不起作用》经验,为你挑选了1个好方法。



1> 小智..:

这很可能是由于最近(从49版开始)更改为 Chrome和Opera中的Event.timeStamp.这些浏览器返回a DOMHighResTimeStamp而不是DOMTimeStamp表示该值不再是纪元时间值,不应转换或与Date值进行比较.

顺便说一下,代码片段在Firefox中从未起作用,因为它没有返回点击事件的纪元时间戳.

我建议阅读上面的文章.但总的来说,Event.timeStamp浏览器和事件类型的行为是不同的,并且在某些浏览器中它也可能受到NTP时间偏差的影响.所以正确使用它是相当棘手的.

如果你想要发生一个事件的纪元时间实例,那么只使用Date.now()内部处理程序是最安全的.它会丢失一些处理时间,但对于许多用例来说它是可以接受的:

$('li').on('click', function(e) {
   var clicked = (new Date()).toDateString();
   $(this).append('' + clicked + ' ' + e.type + '');
});

但是,大多数用例实际上需要测量事件发生的时间与另一个时间点之间的时间.在那种情况下,我建议使用performance.now()哪个是高分辨率的单调时钟.

var startTime = performance.now();
$('li').on('click', function(e) {
   var delta = performance.now() - startTime;
   $(this).append('' + delta + ' ms ago, ' + e.type + '');
});

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有