javascript中的內存泄漏

(1)概念:指一塊被分配的內存既不能使用,又不能回收,直到瀏覽器進程結束。瀏覽器

(2)主要緣由:閉包

    1)當頁面中元素被移除或替換時,若元素綁定的事件仍沒被移除,在IE中不會做出恰    當處理,此時要先手工移除事件,否則會存在內存泄露。spa

    2)循環引用:常見而且通常狀況下無害,可是,在 IE 中,若是循環引用中的任何對    象是 DOM 節點或者 ActiveX 對象,垃圾收集系統則不會發現它們之間的循環關     系與系統中的其餘對象是隔離的並釋放它們。最終它們將被保留在內存中,直到瀏    覽器關閉。(打破循環) 對象

    3)自動類型裝箱轉換:IE下形成內存泄漏(先轉換成相應類型)。進程

    4)DOM插入順序從外到內,IE特有問題(應該從內到外添加)。事件

    5)反覆重寫同一個屬性會形成內存大量佔用(但關閉IE後內存會被釋放,避免這樣寫)內存

    6)閉包(打破循環引用,將引用對象置空)。內存泄漏

相關文章
相關標籤/搜索