删除节点后,内存中节点依然存在,页面需要反复的创建、删除节点,内存不断的增加,得不到释放

解决方案 »

  1.   

    先从DOM树中remove,然后用 delete 关键字(内存回收用的)
    delete element.parentNode.removeChild(element);
      

  2.   

    while(node.firstChild) {
    var obj = node.firstChild;
    obj.removeNode(true); 
    delete obj;
    CollectGarbage();
    } 这样写对吗 ,可是写完还是没有效果
      

  3.   

    delete了 可是没有效果啊  
      

  4.   

    delete element.parentNode.removeChild(element);
      

  5.   

    delete 已经试过了 不好用 谁来给解释下
      

  6.   

    看lz的代码是在删除html元素.这个即使删除了也会在浏览器的缓存中保留.浏览器的缓存是需要占用内存的.如果是js变量或者其他脚本变量是可以删除后释放的,所以lz的要删除的元素要是用js生成的用delete删除是可以释放内存的,要是一开始加载就以html元素的形式出现是不行的.
      

  7.   

    我现在也被这个问题困扰着呢。元素都是js动态生成的,我使用el = el.removeNode(true); delete el;这样的方式手动的释放,可以看到元素已经从页面里面被移除了,但是使用Drip工具测试的时候,还是提示el元素没有释放(内存泄露)。没招了,不知道怎么样子才能彻底的干掉js动态生成的元素。
      

  8.   

    我的元素也是动态生成的,并没有一开始加载就以html元素的形式出现。不过元素上加了click等一些方法,会有影响吗? 有影响怎么解决
      

  9.   

    js的内存释放是个老大难问题,
    据我所知到目前为止还没有好办法。
    CollectGarbage();
    也不能彻底解决问题。
      

  10.   

    是的 一般途径:设null delete CollectGarbege() remove 都不能完全的解决好