2013-02-22 50 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对象的所有事件,所以你需要解除绑定,从那里删除它。

相关问题