要附加哪些事件是最耗费资源的?是mouseover
的"最坏";比click
好吗?是否存在已知的对浏览器非常苛刻的事件?我主要关注IE7,因为我们看到了它的性能问题。我们尽可能使用事件委托。
或者,我如何分析实际正在运行的事件,以确定哪些事件在运行时对性能影响最大?
我对事件本身感兴趣,请不要告诉我我需要去研究我的函数在这些事件中做了什么。问题可能存在,但那不是我的问题。
因此,首先,频繁触发的事件可能会更麻烦。因此,当鼠标移动到元素上时"连续"触发的mouseover事件可能比click事件更容易造成性能影响,click事件只能在用户点击时触发。
但是,真正对性能有影响的是你放在处理程序中的代码。
如果射击速度是一个问题,请查看优秀的jQuery throttle/debounce插件:https://github.com/cowboy/jquery-throttle-debounce
我认为回调的强度与它被调用的次数成正比。
鼠标悬停或设备定向等事件比点击或类似的"一次性"事件要求更高。
事件需要检查的次数越多(然后抛出),它消耗的次数就越多,即从最大值到最小值的顺序:
- 鼠标移动在任何移动时抛出事件
- 鼠标悬停如果指向一个相关的项目,在每次移动时抛出一个事件
- mouseenter必须观察光标的位置,然后点击
- 鼠标点击只在点击时抛出事件