是mousedown事件固有地比mouseup事件慢

is mousedown events inherently slower than mouseup events?

本文关键字:事件 mouseup mousedown      更新时间:2023-09-26

我有一个相当粗的页面,其中有很多可点击的元素,我正在一台相对较慢的计算机(约1GHz处理器)上进行测试。页面的一部分是作为页面一部分的屏幕键盘。我将jQuery与所有按钮的事件委派一起使用,并对mousedown或mouseup事件(一个或另一个,而不是同时对两者)做出反应。在测试这两种情况时,mouseup事件似乎比mousedown更慢、更不可靠(有时会错过按钮按下,或者屏幕在响应之前稍微挂起)。如果连续快速按下许多按钮,情况尤其如此。

mousedown本质上应该比mouseup更快/更好,这有什么原因吗?事件授权会对此产生影响吗?为了用户体验,我更喜欢mouseup事件,所以我想知道我是否可以做些什么来提高mouseup的可靠性。

经典的用户点击会触发mousedownmouseup
两者之间的时间通常在~50ms之间
在这段短时间内,浏览器可能会因为mousedown事件冒泡和传播触发的进程而繁忙,特别是如果您在DOM树中绑定了太多处理程序(如document"html, body"避免这种情况

此外,mouseup可能最终被从未注册
如果某些进程花费了太多时间,或者您的鼠标速度太快,则mouseup在触发时可能没有超过目标元素,因此永远不会触发该事件