1. 程式人生 > >js內存回收機制

js內存回收機制

內存回收

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

js內存回收機制