2013-02-22 21 views
1

這裏是我的代碼:我應該解除綁定事件偵聽器以防止內存泄漏?

// array of image data 
var images = [ 
    { 
     url: 'image.jpg' 
    } 
]; 

// function that loads image 
var loadImage = function(imageObject) { 
    imageObject.img = $('<img src="'+imageObject.url+'"/>').error(function() { 
     // error event handler, that might not always fire 
     imageObject.img.remove(); 
     imageObject.notLoaded = true; 
    }); 
}; 

loadImage(images[0]); 

我的問題是如何清理圖像陣列?如果我給你 images = null;,將在清理所有圖像記憶?我應該解除「錯誤」處理程序嗎?

謝謝!

+0

好,如果以後的函數調用我登錄'圖像[0] .img' - 它返回圖像對象。 – Marvin3 2013-02-22 08:40:28

+0

噢,對不起,我沒有仔細閱讀該功能。 – nnnnnn 2013-02-23 02:05:26

回答

2

與C/C++(及其他),JavaScript的負責存儲器管理和垃圾收集的。當然,刪除不必要的數據將釋放您的瀏覽器/服務器使用的一些資源,並可能會略微提高整體性能,但這不是一項義務,如果您忘記它,將不會有內存泄漏。

要清理的陣列,可以設置images.length = 0images將是一個空數組[]

0

我可能爲黨爲時已晚,但我無意中發現了這個問題。回覆@oleq是正確的,但前提是這是Vanilla JS。

的jQuery 1.x中保持在jQuery.cache對象的所有事件,所以你需要解除綁定,從那裏刪除它。

相關問題