IE的内存泄露问题(待完善)

度娘解释

内存泄漏也称作“存储渗漏”,用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。即所谓内存泄漏。

IE下Javascript中如何触发内存泄露(针对DOM操作)

obj_div1.data = obj_div1;

对自身的循环引用;

var obj = obj_div1;
obj.data = obj_div1;

obj与obj_div1指向同一DOM对象,同样是对自身的循环引用;

function f(){
    var _obj = document.getElementById("mydiv");
    _obj.datafilled = function(){
    return true;
  };

};

闭包的内存泄露比较隐蔽,因为闭包的循环引用是间接的。从表面上看,上面的代码中没有任何循环引用。但是有一个闭包,内部函数有权访问外部函数的变量。_obj是对页面DOM元素的引用,这个DOM元素长期在页面中,而它的属性又是一个可以访问自身的闭包(作用域链),所以产生循环引用的问题。

解决的方法是最后解除对象引用,如:_obj = null;

 

posted on 2013-09-18 13:38  others  阅读(168)  评论(0编辑  收藏  举报

导航