这会导致浏览器内存泄漏吗?

时间:2011-01-28 17:14:50

标签: javascript html

我创建了几个带有onclick事件的div作为'parentDiv'的子项。将来,我设置parentDiv.innerHTML = 'xyz',其中xyz更多div为onclick个事件,取代旧事件。

我的问题:任何浏览器都会泄漏内存,因为我没有删除旧div的onclick事件,而是从dom中删除它们吗?

4 个答案:

答案 0 :(得分:1)

我建议按照道格拉斯克罗克福德的解释阅读memory leaks。本文为您提供了内存泄漏的详细示例,甚至还有一个很好的清除功能,可以帮助您克服与之相关的问题。享受!

答案 1 :(得分:0)

如果您从DOM中删除它们,那么任何事件处理程序也应该从它们中移除,并且不会导致泄漏。

道格拉斯·克罗克福德在JavaScript Memory Leaks上有一些出色的写作。非常值得一读。

答案 2 :(得分:0)

不,这取决于要管理的浏览器。随着对象的移除,浏览器将(或至少应该)释放相关的内存。我不愿意这样做。

在任何情况下,除非你这样做了数千次,否则我不认为这是一个问题。

答案 3 :(得分:0)

通常没有。

但是,如果您的onclick处理程序恰好是引用它所附加的HTML元素的闭包,那么它可能会在某些浏览器中泄漏。

请查看我编写的本指南,了解有关JavaScript内存泄漏以及如何查找和修复它们的更多详细信息:http://www.vladalexandruionescu.com/2012/08/javascript-memory-leaks.html。这应该为你解决问题。