2012-08-06 63 views
1

我想测量mousedown事件和应用css活动属性之间的时间,而不使用任何jQuery函数(纯javascript)。我发现存在不活动的事件,但Opera不支持Opera(我想要进行此测量的浏览器)。实际上,这个活动事件仅由IE支持(不确定哪些版本)。活动事件上的HTML元素

htmlElement.addEventListener('mousedown', function(){var timestamp = new Date().getTime()/1000; console.warn('mouse down ', timestamp)}) 

htmlElement.addEventListener('DOMAttrModified', function(){var timestamp = new Date().getTime()/1000; console.info('highlighted ', timestamp)}) 

此'DOMAttrModified'事件不会报告按钮何时变为活动状态。

回答

5

:active是一个CSS伪类,不是DOM属性或属性。由于GUI和代码执行的单线程性质,测量鼠标关闭和伪类设置的时间之间的时间是不可能的也是不可行的。基本上,在鼠标事件触发时,CSS和GUI更新已经排队,并且在应用:active时没有事件触发。

不过,我想不出任何有理由担心这个过程需要多长时间,你可能会忘记它并继续前进。

+0

是的你是对的。我没有正确地问我的问题我希望鼠标关闭和呈现这个':active'伪类设置的更改结束之间的时间。例如,我注意到如果使用渐变,渲染速度会慢得多,这使得我的GUI不能很快响应。 – Nikolay 2012-08-06 13:21:18

+0

@Nikolay:在这种情况下,您可能需要使用'window.postMessage' [如此处所述](http://dbaron.org/log/20100309-faster-timeouts)来调查0ms超时。 – 2012-08-06 13:33:32