关于js中的资源释放

   var arr=[];

   //创建8000个div,并把它添加到document.body中

for(var i=0; i<8000; i++){
    var div = document.createElement("div");
    div.innerHTML = i;
    arr[arr.length] = div;
    document.body.appendChild(div);
   }  

  //从document.body中移除这些对象 

//现在问题是运行如下代码能够释放一定的内存,但似乎总有一些内存不是释放不掉,比如在创建8000个div之前,IE占的内存为21M,创建完成之后IE占25M,然后运行如下代码IE占用的内存会多于21M,似乎总有0.5至1M的内存释放不掉,

   for(var i = 0; i < arr.length; i++){
        var div = arr[i];
        div.parentNode.removeChild(div);
        delete arr[i];
    }
    arr = [];

不知是怎么回事

 

慕慕森
浏览 1405回答 3
3回答

慕桂英3389331

其实他已经是释放占用的内存的,哪个内存使用只是一个假像... 你最小化一下IE再最大化,然后再看看占用内存大小...

皈依舞

CollectGarbage()函数 调用这个函数可以主动回收,另外你把IE浏览器最小化一下,会看到明显的效果,因为在最小化的时候IE会调用这个函数
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript