首页 新闻 会员 周边

关于js中的资源释放

0
悬赏园豆:5 [已解决问题] 解决于 2007-12-28 10:37
<P>&nbsp;&nbsp; var arr=[];</P> <P>&nbsp;&nbsp; //创建8000个div,并把它添加到document.body中</P> <P>for(var i=0; i&lt;8000; i++){<BR>&nbsp;&nbsp;&nbsp; var div = document.createElement("div");<BR>&nbsp;&nbsp;&nbsp; div.innerHTML = i;<BR>&nbsp;&nbsp;&nbsp; arr[arr.length] = div;<BR>&nbsp;&nbsp;&nbsp; document.body.appendChild(div);<BR>&nbsp;&nbsp; }&nbsp;&nbsp;</P> <P>&nbsp;&nbsp;//从document.body中移除这些对象&nbsp;</P> <P>//现在问题是运行如下代码能够释放一定的内存,但似乎总有一些内存不是释放不掉,比如在创建8000个div之前,IE占的内存为21M,创建完成之后IE占25M,然后运行如下代码IE占用的内存会多于21M,似乎总有0.5至1M的内存释放不掉,</P> <P>&nbsp;&nbsp;&nbsp;for(var i = 0; i &lt; arr.length; i++){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var div = arr[i];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; div.parentNode.removeChild(div);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; delete arr[i];<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; arr = [];<BR></P> <P mce_keep="true">不知是怎么回事</P> <P mce_keep="true">&nbsp;</P>
问题补充: 在firefox中几乎没释放。。。
Dev.Hong的主页 Dev.Hong | 菜鸟二级 | 园豆:415
提问于:2007-12-25 15:58
< >
分享
最佳答案
0
可能是GC的没有及时回收
阿不 | 小虾三级 |园豆:665 | 2007-12-26 08:41
其他回答(2)
0
其实他已经是释放占用的内存的,哪个内存使用只是一个假像... 你最小化一下IE再最大化,然后再看看占用内存大小...
没剑 | 园豆:430 (菜鸟二级) | 2007-12-25 17:25
0
CollectGarbage()函数 调用这个函数可以主动回收,另外你把IE浏览器最小化一下,会看到明显的效果,因为在最小化的时候IE会调用这个函数
niugm | 园豆:1685 (小虾三级) | 2007-12-26 11:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册