2

当我将 mousemove 事件绑定到元素时,它可以在除 Internet Explorer 之外的所有浏览器中顺利运行。使用 IE,CPU 使用率过高,并且一些相关的东西(例如工具提示)很难看。有什么办法可以摆脱性能问题?(是的,我知道,不要使用 IE :))

更新:即使我没有在事件处理函数中做任何事情,CPU 使用率仍然很高。这是我的代码:

$("#container").live("mousemove", function(e){

});

正常吗?

4

2 回答 2

2

您是否在 mousemove 事件中使用 jquery 选择器?我见过 jquery 选择器在复杂页面中速度变慢的情况,如果将选择器置于多次触发的事件中,则会出现明显的延迟。在许多情况下,您可以只在 mousemove 之前存储对元素的 jquery 引用,然后 mousemove 使用元素引用而不是再次使用选择器,每次调用它时都会在内部重新遍历 DOM。

于 2010-04-29T17:13:12.247 回答
0

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.

于 2010-04-29T17:07:36.590 回答