DOM 事件侦听器垃圾收集

Tim*_*Tim 5 dom garbage-collection event-listener

如果事件侦听器附加到表的特定列中的每个单元格,然后从表中删除每一行,为了避免内存泄漏,开发人员是否有必要在删除行之前删除事件侦听器,或者浏览器会清理东西吗?

编辑:迈克尔建议的文章event delegation比将侦听器直接绑定到表中的每个单元格的性能更好,但我不确定从垃圾收集的角度来看它是否更好,或者只是表现更好。请给出意见。从文章:

        $('table').on('click', 'td', function () {

            $(this).toggleClass('active');

        });
Run Code Online (Sandbox Code Playgroud)

据说优于:

        $('table td').on('click', function () {

            $(this).toggleClass('active');

        });
Run Code Online (Sandbox Code Playgroud)

EDIT2:和。对jQuery的文档()和事件代表团也着重于性能,但是从当行被重复删除的垃圾收集的角度发生了什么问题集体从一张大桌子和细胞点击正在由委托机制听取,仍然存在。

Mic*_*ael -2

我不确定,但我想这篇精彩的文章会清理一切(搜索“垃圾收集”):http://coding.smashingmagazine.com/2012/11/05/writing-fast-memory-efficient-javascript/

  • 被否决是因为答案不包含任何实际信息,仅指向资源(该资源可能在将来的某个时刻变得过时,从而完全使“答案”无效)。纠正此问题的一种方法(保留指向其他好文章的链接)是将文章中的论点复制或综合为答案中的要点。 (3认同)