簡體   English   中英

這會導致瀏覽器內存泄漏嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM