您好,欢迎访问一九零五行业门户网

关于js内存泄露的一个好例子_javascript技巧

我把别人的例子改了一下,觉得这样写更紧凑!套用别人的原话,当一个dom对象包含一个js对象的引用(例如一个event handler), 而这个js对象又持有对这个dom对象的引用时,一个环状引用就行成了,于是在ie下就出现了内存泄露。点击“运行代码”并打开任务管理器看内存变化。分别在ie8和ff下测试,差距不用多说。
运行代码
复制代码 代码如下:
memory leak
那么在ie下该怎么解决呢?在删除节点的时候,手动破除环状引用,把里面setinterval那段代码稍微改动以下:
复制代码 代码如下:
setinterval(function(){
  q.push(makespan());
  if(q.length>=10){
    var s = q.shift();
    if(s){
     s.onclick = null;//关键在这里
      s.parentnode.removechild(s);
    }
  }
  n++;
},10);
其它类似信息

推荐信息