在JavaScript中怎样释放对象占用的内存?

ChinaPcFan 2003-09-30 01:32:26
在JS中创建了XMLDocument、XMLHTTP、HTMLElement、Object、Array等对象,这些对象不再需要使用时,应怎样使它们释放内存?
我在函数体内声明一个局部变量来保存新创建的XMLDocument对象,本以为此函数执行完后就会自动释放内存的,结果没有释放,把变量高为null还是没有释放,用尽了一切我能想到的方法都没能让它释放内存,刷新页面和转换页面都不行,只有关闭了IE才释放内存的!
请教各位高手,应该怎样操作才能让不需要使用的对象释放内存??
下面是测试代码:
function test(){
var xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
xmlDoc.async = false;
xmlDoc.load('test.xml');
xmlDoc = null;

}
...全文
1335 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingdomzhf 2003-10-08
  • 打赏
  • 举报
回复
自动回收
ChinaPcFan 2003-10-08
  • 打赏
  • 举报
回复
谢谢各位大哥了!看来没有办法控制让它释放内存了,只好等系统自动回收了。
icewolf_li 2003-10-03
  • 打赏
  • 举报
回复
你只需要把对象置为null就可以了。系统在内存不够的时候会自动去回收这些已经无用的内存。
不过要注意的一点MicroSoft.XMLDom对象会造成内存泄漏,导致内存无法被正常回收。所以最好都使用XMLDocument对象。
imafool 2003-10-03
  • 打赏
  • 举报
回复
Javascript和JScript均是自动收集垃圾的。并无释放语句。Object.delete可以删除对象的属性。
但收集并释放内存的时机与代码的编写有关,如果系统不能确认某段代码不会再使用,那就不会自动释放这些内存。
另外当然有一些办法,虽然不能释放对象,但能减少对象的内存占用量。因为JS是弱类型的,所以在适当时候使用Object=null是有好处的。
emu 2003-10-02
  • 打赏
  • 举报
回复
呵呵,对不起搞错了,是兰波的。
zhjzh_zjz 2003-10-02
  • 打赏
  • 举报
回复
delete xmldoc;
nolonely 2003-10-01
  • 打赏
  • 举报
回复
to emu:
那篇文章是兰波发的,不是美洲豹.:)

已经找不到那文章了,:(


我认为浏览器关闭时,内存会释放
thrillers 2003-10-01
  • 打赏
  • 举报
回复
learning
ChinaPcFan 2003-09-30
  • 打赏
  • 举报
回复
to net_lover:
  在我的测试代码中的xmlDoc = null这一句呀,还是没有能释放内存。孟老大,可不可请你帮我试一下?
孟子E章 2003-09-30
  • 打赏
  • 举报
回复
JavaScript and JScript use automatic garbage collection.

So when your program has finished, all the variables/objects are destroyed
for you.

To force destruction, set the variable or object to null - undefined means
that the variable still exists, but in an indetermminate state.
孟子E章 2003-09-30
  • 打赏
  • 举报
回复
xmlDoc = null
紫郢剑侠 2003-09-30
  • 打赏
  • 举报
回复
关注!
ChinaPcFan 2003-09-30
  • 打赏
  • 举报
回复
to lincoke(别): 这些对象都没有close()这个方法呀!执行结果是“对象不支持此属性或方法”

to emu(ston):我想先了解一下,有没有办法可以释放,如果有办法释放再去找方法,谢谢!
emu 2003-09-30
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/1501/1501264.xml

美洲豹有一篇精彩帖子<<心得:Javascript的内存释放实验。>> 现在搜得到打不开,问问斑竹有没有办法。
lincoke 2003-09-30
  • 打赏
  • 举报
回复
对像名.close()

87,922

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧