我正在开发一个非常复杂的JS应用程序,它基于jQuery + Prototype +我的一个小框架。内容完全由AJAX调用管理,只有第一页生成服务器端。 我已经阅读了关于内存泄漏问题的各种帖子(特别针对jQuery和一般的JS),比如Js对象/ DOM循环引用等。我有很多种事件绑定到元素,并以各种方式管理,所以我'我很容易遇到记忆问题。 在试图对抗所有这些之后,现在每当我(我想)摧毁旧内容后重新加载一些内容时,我就会挂起至少MB的记忆。内容由数百个元素组成,我只是尝试做这样的事情:
var allchilds = this.mainContent.find('*');
for (var i=0;i<allchilds.length;i++){
$j(allchilds[i]).unbind();
$j(allchilds[i]).remove();
}
this.mainContent.remove();
这是冗余和低效的,但我认为这将保证删除并释放所有元素......但是当我这样做时,内存不会减少,并且当新内容被加载并呈现时它会升起。 我知道以前的片段对于管理记忆泄漏有点天真,但是你能帮助找到一种蛮力的方式来使FF垃圾收集器回收内存吗?
THX, 乔瓦尼