1. 程式人生 > >開發過程中遇到的內存泄露情況,如何解決的?

開發過程中遇到的內存泄露情況,如何解決的?

成了 內存 瀏覽器中 分享圖片 引用 處理 回收 內部 alt

1、定義和用法:

內存泄露是指一塊被分配的內存既不能使用,又不能回收,直到瀏覽器進程結束。C#和Java等語言采用了自動垃圾回收方法管理內存,幾乎不會發生內存泄露。我們知道,瀏覽器中也是采用自動垃圾回收方法管理內存,但由於瀏覽器垃圾回收方法有bug,會產生內存泄露。

2、內存泄露的幾種情況:

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

實例如下:

技術分享圖片

解決方法如下:

技術分享圖片

②.由於是函數內定義函數,並且內部函數--事件的回調的引用引暴了,形成了閉包。閉包可以維持函數內局部變量,使其得不到釋放。

實例如下:

技術分享圖片

解決方法如下:

技術分享圖片

開發過程中遇到的內存泄露情況,如何解決的?