【问题标题】:Does performance of an event handler depends on the number of child elements事件处理程序的性能是否取决于子元素的数量
【发布时间】:2010-07-04 13:02:11
【问题描述】:

我在一个表上有一个 mousedown 事件处理程序,其行数动态增加(现在超过一千,从角度来看应该是无限的),我观察到随着预加载行数的增加,性能下降。事件处理程序的目的很简单 - 找出点击了哪一行并将其突出显示。

我不知道究竟是什么导致了减速,我不确定它是否是事件处理程序。我只是想知道可能触发 mousedown 气泡的子元素的数量是否会影响附加到单个父元素的事件处理程序的性能?

更新:我在这里想出了一个简单的例子:http://client.infinity-8.me/table.php?num=1000(你可以传递任何你想要的数字),基本上它呈现一个有 num 行的表并附加了一个事件处理程序到父表。我应该由此得出结论,实际上并没有明显的性能下降,这是由子元素的数量引起的。

【问题讨论】:

  • 也许发布一个网址,看看是什么真正让你慢下来。
  • 最重要的是:页面运行缓慢,或者事件处理持续时间过长?

标签: javascript performance event-bubbling event-handling


【解决方案1】:

理论上不应该。只有深度才是重要的,因为通过检查每一层(每层一个)的处理程序会增加冒泡。

10 000 个元素即使在 IE6 上也表现出色。

See it in action.

【讨论】:

    猜你喜欢
    • 2016-11-09
    • 1970-01-01
    • 2012-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-22
    • 2017-12-02
    • 1970-01-01
    相关资源
    最近更新 更多