释放Javascript中未连接的DOM节点使用的内存

时间:2009-02-08 18:24:35

标签: javascript memory-management

作为我的应用程序的一部分,我正在组合一组未同时显示的小型Dom节点。我将它们存储在内部数组中。用户可以调用他们的显示,在这种情况下,我将它们重新显示到用于显示它们的div。这一切都很好。但是,当用新的替换所有这些时,我想要破坏旧的(有效地解除它们)。否则,随着时间的推移,内存使用量可能呈指数级增长。如何强制浏览器js引擎执行此操作?只是将我的Dom节点数组中的每个项设置为null?我还有别的办法吗?或者我可能根本不用担心这个问题?

2 个答案:

答案 0 :(得分:5)

如果将每个项目设置为null,它们将自动被垃圾收集。

答案 1 :(得分:5)

是的,将项目设置为null应该没问题...除了必须使用Internet Explorer处理某些实现细节:它对循环引用的处理是狡猾的。见http://msdn.microsoft.com/en-us/library/bb250448.aspx

  

循环引用 - 在Internet Explorer的COM基础结构和任何脚本引擎之间计算相互引用时,对象可能会泄漏内存

所以你在某些情况下打破循环引用。