js記憶體回收機制

daxuesheng發表於2021-09-09

Javascript語言有自己的一套記憶體回收機制,一般情況下區域性變數和物件使用完就會被系統自動回收,無需我們理會。但是碰到閉包的情況這些變數和物件是不會被回收的,對於普通的web站點,頁面重新整理或跳轉這些記憶體也會被回收。如果是單頁web站點,頁面切換及資料請求都是透過ajax無重新整理機制實現的,頁面資源無法自動回收,時間長了會嚴重影響效能,造成記憶體洩漏甚至頁面崩潰直接退出,這時候手動釋放不用資源就非常必要了,包含刪除dom、釋放物件等
想手動釋放含有閉包的物件時,必須先將引用物件屬性的事件刪除,然後設定為null方可消耗物件。這種事件一般是可以多次執行的,如原生事件的監聽,定時器。一般比較有名較完善的外掛都有帶銷燬資源方法,如iscroll外掛,裡面就有一個destroy原型方法,它裡面也就是移除事件監聽和刪除定時器。大家可以去看看原始碼

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4692/viewspace-2817120/,如需轉載,請註明出處,否則將追究法律責任。

相關文章