小编Igo*_*nko的帖子

循环添加/删除DOM节点会导致JavaScript中的内存泄漏?

我正在尝试使用DOM元素(添加/删除它们)显示动态可变数据操作.我发现了几乎所有浏览器的一个非常奇怪的行为:在我删除一个DOM元素然后添加一个新元素后,浏览器不会释放被删除的DOM项所占用的内存.请参阅下面的代码以了解我的意思.运行此页面后,它将逐步进入150 MB的内存.有谁能解释我这种奇怪的行为?或者也许我做错了什么?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
  <script type="text/javascript">
     function redrawThings() {
         // Removing all the children from the container
         var cont = document.getElementById("container");
         while ( cont.childNodes.length >= 1 ) {
            cont.removeChild(cont.firstChild);
         }

         // adding 1000 new children to the container
         for (var i = 0; i < 1000; i++) {
             var newDiv = document.createElement('div');
             newDiv.innerHTML = "Preved medved "  + i;
             cont.appendChild(newDiv);             
         }         
     }  
  </script>
  <style type="text/css">
    #container {
        border: 1px solid blue;
    }
  </style> …
Run Code Online (Sandbox Code Playgroud)

javascript dom memory-leaks

6
推荐指数
1
解决办法
1043
查看次数

标签 统计

dom ×1

javascript ×1

memory-leaks ×1