2009-02-08 71 views
5

作爲我的應用程序的一部分,我正在組合一組不會一次顯示的小Dom節點。我將它們存儲在一個內部數組中。用戶可以調用它們的顯示,在這種情況下,我將它們重新映射到用於顯示它們的div。這一切都很好。但是當它們全部換成新的時候,我想摧毀舊的(有效地釋放它們)。否則,隨着時間的推移,內存使用量可能呈指數增長。我如何強制瀏覽器js引擎執行此操作?只是將我的Dom節點數組中的每個項目設置爲null就足夠了?還有什麼我需要做的嗎?或者,也許我根本不必擔心這一點?釋放由JavaScript中未連接的DOM節點使用的內存

回答

5

如果您將每個項目設置爲空,它們將自動收集垃圾。

+0

太好了。這就是我所希望的。 – Karim 2009-02-08 18:32:18

5

是的,將項目設置爲空應該沒問題......除了一些實現細節必須由Internet Explorer來處理:它對循環引用的處理是狡猾的。見http://msdn.microsoft.com/en-us/library/bb250448.aspx

循環引用,當相互引用Internet Explorer的COM基礎設施和任何腳本引擎之間計數的,對象可以泄漏內存

所以你打破在某些情況下,循環引用。