5

我注意到,当我单击站点上的一个元素时,Firebug 在事件处理程序中将 e.timeStamp 报告为 9 位数字,例如 866523917,当我单击另一个元素时,Firebug 在该处理程序中将 e.timeStamp 报告为一个 16 位数字,例如 1376344365954000。为什么会有差异?

谢谢

4

3 回答 3

5

正如标准中定义的那样, timeStamp返回自纪元以来的毫秒数:

用于指定创建事件的时间(相对于纪元的毫秒数)。由于某些系统可能不提供此信息,timeStamp 的值可能不适用于所有事件。当不可用时,将返回值 0。

但是,对于 epoch 没有严格的定义:

纪元时间的示例是系统启动时间或 1970 年 1 月 1 日 0:0:0 UTC。

一些事件使用第一个变体(系统启动),而其他事件使用 1970 年以来的时间。因此存在差异。作为旁注,timeStamp某些事件可能根本没有提供,那么它的值将是0.

于 2013-08-13T03:10:21.610 回答
0

我认为问题出在火狐上。我在 Safari 和 Chrome 上得到了更大的数字(13 位加 3 个零),我遇到了一些说 Firefox 有错误的文章:http: //bugs.jquery.com/ticket/10755。一篇文章建议它可能会报告自上次重新启动以来的时间。

我仍然不明白为什么 Firefox 会以一种方式报告一个中断,而以另一种方式报告另一个中断。出于我的目的,我将只使用 timestamp=Date.now() 而不是 e.timestamp。这似乎在任何中断时都是一致的。

于 2013-08-13T03:00:42.153 回答
0

相反event.timestamp,使用Date.now()

于 2014-11-12T09:44:41.157 回答