【问题标题】:jQuery mousemove performancejQuery mousemove 性能
【发布时间】:2010-04-29 16:56:59
【问题描述】:

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

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

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

});

正常吗?

【问题讨论】:

  • 你在mousemove上做什么?答案很大程度上取决于此。
  • 我设置了工具提示的左侧和顶部位置。但即使我什么都不做,cpu 使用率仍然很高。
  • 什么版本的jQuery?为什么你会在不提供任何代码的情况下提出这样的问题?你认为我们是读心术的魔术师吗?问题可能 99.9% 与您的事件处理程序有关,而不是 IE。
  • 尝试使用 $("#container").mousemove(function(e){ });而不是 .live()。只要您不销毁/重新创建#container,您就会为使用 .live 而不是 .bind 或 .mousemove 支付罚款

标签: jquery mousemove


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    将简单更新绑定到鼠标移动事件应该没有问题,即使在 IE 中也是如此。正如最近在无数网站中看到的那样,拖放就是以这种方式实现的。

    如果您看到 CPU 出现大量峰值,我认为可能有更大的根本原因。

    【讨论】:

      猜你喜欢
      • 2013-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多