[英]Will this cause a browser memory leak?
我創建了幾個帶有onclick
事件的div作為'parentDiv'的子項。 在將來,我設置parentDiv.innerHTML = 'xyz'
,其中xyz是更多div與onclick
事件,取代舊的事件。
我的問題:任何瀏覽器都會泄漏內存,因為在從dom中刪除之前我沒有刪除舊div的onclick
事件嗎?
我建議閱讀Douglas Crockford解釋的內存泄漏 。 本文為您提供了內存泄漏的詳細示例,甚至還有一個很好的清除功能,可以幫助您克服與之相關的問題。 請享用!
通常沒有。
但是,如果你的onclick處理程序恰好是引用它所附加的HTML元素的閉包,那么它可能會在某些瀏覽器中泄漏。
看看我寫的這本指南,了解有關JavaScript內存泄漏以及如何查找和修復它們的更多詳細信息: http : //www.vladalexandruionescu.com/2012/08/javascript-memory-leaks.html 。 這應該為你解決問題。
如果從DOM中刪除它們,那么任何事件處理程序也應該從它們中刪除而不會導致泄漏。
Douglas Crockford在JavaScript Memory Leaks上有一些很好的寫作。 非常值得一讀。
不,這取決於瀏覽器的管理。 隨着對象的移除,瀏覽器將(或至少應該)釋放相關的內存。 我不願意繼續這樣做。
無論如何,除非你這樣做了數千次,否則我不會指望這是一個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.