当我将 mousemove 事件绑定到元素时,它可以在除 Internet Explorer 之外的所有浏览器中顺利运行。使用 IE,CPU 使用率过高,并且一些相关的东西(例如工具提示)很难看。有什么办法可以摆脱性能问题?(是的,我知道,不要使用 IE :))
更新:即使我没有在事件处理函数中做任何事情,CPU 使用率仍然很高。这是我的代码:
$("#container").live("mousemove", function(e){
});
正常吗?
您是否在 mousemove 事件中使用 jquery 选择器?我见过 jquery 选择器在复杂页面中速度变慢的情况,如果将选择器置于多次触发的事件中,则会出现明显的延迟。在许多情况下,您可以只在 mousemove 之前存储对元素的 jquery 引用,然后 mousemove 使用元素引用而不是再次使用选择器,每次调用它时都会在内部重新遍历 DOM。
You should have no problems binding simple updates to the mouse move event, even in IE. Drag/drop, as seen in a gazillion websites recently, is implemented exactly this way.
If you're seeing massive spikes in CPU, I'd consider perhaps there's a larger underlying cause.