比方說,我創建了自己的帆布類:未使用的DOM元素會發生什麼?
this.canvas = document.createElement("canvas");
我用的畫布,畫一些東西,等等,但從來沒有在畫布添加到DOM樹。 當我完成後,我不再使用整個班級。
那麼當我刪除使用畫布的類,畫布還佔用內存嗎?我必須以某種方式刪除它嗎?
或者,作爲一個更一般的問題:未使用的元素不會再出現在DOM樹中或從未出現過(在網站中不可見)會發生什麼?他們會被垃圾收集和/或你可以加快一點,以提高性能?
比方說,我創建了自己的帆布類:未使用的DOM元素會發生什麼?
this.canvas = document.createElement("canvas");
我用的畫布,畫一些東西,等等,但從來沒有在畫布添加到DOM樹。 當我完成後,我不再使用整個班級。
那麼當我刪除使用畫布的類,畫布還佔用內存嗎?我必須以某種方式刪除它嗎?
或者,作爲一個更一般的問題:未使用的元素不會再出現在DOM樹中或從未出現過(在網站中不可見)會發生什麼?他們會被垃圾收集和/或你可以加快一點,以提高性能?
正如你已經正確地提到你自己,這不是關於DOM樹,它更多關於對象引用&垃圾收集器。
當您通過基礎對象刪除/刪除一個類時,所有現代收藏家都會照顧你。通過甚至不將節點插入到DOM中,您也不必擔心任何隱藏的引用。我見過幾個人也明確地設置<canvas>
參考null
也,但我想這是純粹的IE8偏執狂。
聽起來不錯。感謝你的回答。我猜到了那麼多,但是肯定會好得多:) – TheSHEEEP
我不認爲瀏覽器會垃圾收集這些,因爲它永遠不會確定什麼時候可以將它注入到DOM中。 –
如果他們一直很好,他們會進入DOM天堂,或者如果他們糟糕,他們會進入DOM地獄。 – Ashe
+1讓我有趣;) – TheSHEEEP