当我将mousemove事件绑定到一个元素时,它可以在除Internet Explorer之外的每个浏览器上顺利运行。使用IE,CPU的使用率太高,而且一些相关的东西(例如工具提示)很难看。有什么办法可以摆脱性能问题吗? (是的,我知道,不要使用IE :))
更新:即使我在事件处理函数中没有做任何事情,CPU使用率仍然很高。这是我的代码:
$("#container").live("mousemove", function(e){
});
这是正常的吗?
答案 0 :(得分:2)
您是否在mousemove事件中使用jquery选择器?我已经看到jquery选择器在复杂页面中减速的情况,如果你将选择器放在一个多次触发的事件中,则会有明显的滞后。在许多情况下,您可以在mousemove之前将jquery引用存储到元素,然后mousemove使用元素引用而不是再次使用每次调用时在内部重新遍历DOM的选择器。
答案 1 :(得分:0)
即使在IE中,您也不应该将简单更新绑定到鼠标移动事件。最近在很多网站上看到的拖放操作都是以这种方式实现的。
如果你看到CPU出现大量高峰,我认为可能存在更大的根本原因。