我创建了几个带有onclick
事件的div作为'parentDiv'的子项。将来,我设置parentDiv.innerHTML = 'xyz'
,其中xyz更多div为onclick
个事件,取代旧事件。
我的问题:任何浏览器都会泄漏内存,因为我没有删除旧div的onclick
事件,而是从dom中删除它们吗?
答案 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。这应该为你解决问题。