2010-04-29 59 views
2

当我将mousemove事件绑定到某个元素时,它与除Internet Explorer之外的每个浏览器都能够平稳地工作。 IE使用CPU的方式太多了,一些相关的东西(例如工具提示)很难看。有什么办法可以摆脱性能问题吗? (是的,我知道,不要使用IE :))jQuery mousemove性能

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

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

}); 

这是正常的吗?

+0

你在做什么'mousemove'?答案很大程度上取决于此。 – 2010-04-29 17:00:58

+0

我设置了一个工具提示的左侧和顶部位置。但即使我没有做任何事情,CPU使用率仍然很高。 – Colby77 2010-04-29 17:06:02

+0

什么版本的jQuery?为什么你会问这样的问题而不提供任何代码?你认为我们是读心术的魔术师吗?问题可能是99.9%与您的事件处理程序相关,而不是IE。 – 2010-04-29 17:24:50

回答

0

即使在IE中,将鼠标移动事件绑定到简单更新也没有问题。正如最近在gazillion网站中所看到的,拖放是完全按照这种方式实现的。

如果你看到CPU的巨大峰值,我会考虑也许有一个更大的潜在原因。

2

你是否在mousemove事件中使用jquery选择器?我已经看到了jquery选择器在复杂页面中减速的情况,如果您将选择器放在多次触发的事件中,则会有明显的滞后。在许多情况下,您可以在mousemove之前将jquery引用存储到元素,然后mousemove使用元素引用,而不是再次使用内部在每次调用DOM时都重新遍历DOM的选择器。