在javascript中从内存中删除对象

5

我正在开发一个使用大量Javascript的AJAX应用程序,所有页面都通过AJAX加载。
在某个页面上,我有一个用Javascript构建的网格。现在,当我离开那个页面时,我想销毁那个网格。我调用jQuery.remove(),但这只会从DOM中删除对象。
我的问题是如何从内存中删除这个网格对象?因为当我离开页面时,它仍然存在。

非常感谢!


2
你如何知道在你离开页面后这个对象仍然存在于内存中? - Darin Dimitrov
你有在变量中存储网格标识符吗?如果是的话,那么请将gridVar设置为null; - CoolEsh
1
完全取决于浏览器...我猜你认为它仍然存在于内存中,因为浏览器进程的内存使用量没有减少? - Shadow The Spring Wizard
当我打开Firebug控制台时,我可以看到该对象仍然存在。它只是从DOM中删除了。 - Gerard
Firebug不能真正确定内存中有什么,而且没有哪些不在内存中,如果你真的对此很感兴趣,我会寻找更加“可靠”的工具。 - Shadow The Spring Wizard
2个回答

7
如果您删除所有对网格的引用(即将变量赋值为 null),垃圾收集器将从内存中删除该对象。

1
如果有一个实际的卸载事件被触发,那么这将起作用,但由于这是一个全ajax应用程序,这并没有发生。 - Gerard
一个选择是每次通过你的ajax应用程序导航时调用卸载事件。但这不是一个好的解决方案.. - Rob

1
将网格放入一个div或其他你想要的东西中。 当你想要删除它时使用


$("<the name of the div>").empty();

那将清除它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接