我已经使用jQuery了几个月,并阅读了几天的JavaScript内存泄漏。 我有一个关于内存泄漏和jQuery两个问题:使用jQuery和内存泄漏
当我绑定(使用.bind(...))我一定要拆散他们(.unbind()),如果我离开这个页面/刷新避免内存泄漏或jQuery为我删除它们?
关于关闭,我读了他们可能导致内存泄漏,如果使用不正确。如果我做了如下操作:
函数doStuff(objects){//对象是一个容纳DOM对象数组的jQuery对象 var textColor =“red”; (function)(){ $(this).css(“color”,textColor); }); }
doStuff($(“*”));
我知道,上面的代码是愚蠢的(更好/更简单[R这样做的方法),但我想知道这是否会导致。每次循环引用/关闭的问题,它是否会导致内存泄漏。如果它确实导致内存泄漏,我将如何重写它(通常类似的方法)以避免内存泄漏?
在此先感谢。
编辑:我有另一个类似问题2的情况下(我想这部分3)。
如果有这样的事情:
函数doStuff(对象){// IFRAME对象 VAR文字颜色= “红色”;
function innerFunction() { $(this).contents().find('a').css("color", textColor); } objects.each(function(){ //I can tell if all 3 are running then we //have 3 of the same events on each object, //this is just so see which method works/preferred //Case 1 $(this).load(innerFunction); //Case 2 $(this).load(function(){ $(this).contents().find('a').css("color", textColor); }); //Case 3 $(this).load(function(){ innerFunction(); }); });
}
doStuff($( “IFRAME”));
有3种情况,我想知道哪种方法(或全部)会产生内存泄漏。此外,我想知道哪个是首选方法(通常我使用案例2)或更好的实践(或者如果这些不好,会更好?)。
再次感谢!
如果没有必要的循环引用,可能会导致封闭泄漏 – davin 2011-03-11 03:00:02