【问题标题】:Can removing dom elements with listeners cause a memory leak?使用侦听器删除 dom 元素会导致内存泄漏吗?
【发布时间】:2012-11-09 18:00:14
【问题描述】:

假设我有这个 HTML:

<ul class="waka_waka">
  <li>Fozzy Bear</li>
  <li>Steve Martin</li>
  <li>John Candy</li>
</ul>

...然后用jQuery添加一个事件监听器:

$('ul li').click(function() { console.log('waka_waka!!!'); });

如果突然在某个时候这样做:

$('.waka_waka').remove();

这些事件监听器会自动分离和释放吗?或者这实际上会导致内存泄漏吗?在删除之前删除这些侦听器是最佳做法吗?

【问题讨论】:

标签: javascript jquery memory-leaks


【解决方案1】:

根据 jQuery DOCS remove 也删除所有绑定的事件处理程序

除了元素本身,所有绑定的事件和jQuery 与元素关联的数据被删除。

但是看看这个问题jQuery memory leak with DOM removal,似乎有一次可能存在内存泄漏(请注意,这个问题已经很老了,所以现在应该已经解决了)。

【讨论】:

    猜你喜欢
    • 2016-08-15
    • 1970-01-01
    • 2021-06-14
    • 1970-01-01
    • 2010-11-18
    • 1970-01-01
    • 2021-03-23
    • 2021-09-25
    • 2014-12-08
    相关资源
    最近更新 更多