【发布时间】:2009-07-11 15:44:12
【问题描述】:
严格来说这并不重要,也许我还没有完全理解 DOM 是如何工作的,但我只是试图预测这里是否存在某种内存泄漏的可能性。如果我删除具有子元素、事件侦听器等的元素,这些元素也会被清理吗?或者我自己实施某种递归删除解决方案是否明智?
为了扩展这个问题,我还要问:直接从DOM中删除元素(不是通过。jQuery,我的意思是)也有同样的问题吗?
【问题讨论】:
标签: javascript jquery dom memory-leaks
严格来说这并不重要,也许我还没有完全理解 DOM 是如何工作的,但我只是试图预测这里是否存在某种内存泄漏的可能性。如果我删除具有子元素、事件侦听器等的元素,这些元素也会被清理吗?或者我自己实施某种递归删除解决方案是否明智?
为了扩展这个问题,我还要问:直接从DOM中删除元素(不是通过。jQuery,我的意思是)也有同样的问题吗?
【问题讨论】:
标签: javascript jquery dom memory-leaks
是的,确实如此。 jQuery 只是 Javascript 功能的包装器,其行为方式相同:删除节点本质上是删除整个子树,以便包括所有后代节点。这包括侦听器(意思是侦听节点或其后代之一的任何东西)。你不能听那些不再存在的东西。
【讨论】:
简单:jQuery.remove() 删除子元素。不知道监听器,但可能它们也被删除了。
【讨论】: