Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我应该取消绑定事件侦听器以防止内存泄漏吗?_Javascript_Jquery_Memory_Memory Management_Memory Leaks - Fatal编程技术网

Javascript 我应该取消绑定事件侦听器以防止内存泄漏吗?

Javascript 我应该取消绑定事件侦听器以防止内存泄漏吗?,javascript,jquery,memory,memory-management,memory-leaks,Javascript,Jquery,Memory,Memory Management,Memory Leaks,这是我的密码: // 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() { // err

这是我的密码:

// 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]);
//图像数据数组
变量图像=[
{
url:'image.jpg'
}
];
//加载图像的函数
var loadImage=函数(imageObject){
imageObject.img=$('')。错误(函数(){
//错误事件处理程序,可能不总是触发
imageObject.img.remove();
imageObject.notLoaded=true;
});
};
loadImage(图像[0]);
我的问题是如何清理图像阵列?如果我指定
images=null,这会清除所有图像的内存吗?我应该解除“错误”处理程序的绑定吗

谢谢大家!

与C/C++(以及其他)不同,JavaScript负责内存管理和垃圾收集。当然,删除不必要的数据将释放浏览器/服务器使用的一些资源,并可能略微提高总体性能,但这不是一项义务,如果您忘记了它,也不会发生内存泄漏


要清理阵列,可以设置
images.length=0
<代码>图像
将是一个空数组
[]

我参加聚会可能太迟了,但我自己偶然发现了这个问题。@oleq的回复是正确的,但前提是这是一个普通的JS


jQuery 1.x将所有事件保存在
jQuery.cache
对象中,因此您需要解除绑定,将其从中删除。

好吧,如果在函数调用后我记录
图像[0]。img
-它返回图像对象。哦,对了,对不起,我没有仔细阅读函数。