【问题标题】:Freeing memory used by unattached DOM nodes in Javascript释放 Javascript 中未连接的 DOM 节点使用的内存
【发布时间】:2009-02-08 18:24:34
【问题描述】:

作为我的应用程序的一部分,我将一组小型 Dom 节点放在一起,这些节点不会一次全部显示出来。我将它们存储在一个内部数组中。用户可以调用他们的显示,在这种情况下,我将它们重新设置为用于显示它们的 div。这一切都很好。但是当需要用新的替换它们时,我想销毁旧的(有效地释放它们)。否则,随着时间的推移,内存使用量可能会呈指数增长。如何强制浏览器 js 引擎执行此操作?只是将我的 Dom 节点数组中的每个项目设置为 null 就足够了吗?我还有什么需要做的吗?或者也许我根本不用担心这个?

【问题讨论】:

    标签: javascript memory-management


    【解决方案1】:

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

    【讨论】:

    • 太棒了。这就是我所希望的。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2015-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-26
      • 2016-03-27
      • 2017-05-20
      相关资源
      最近更新 更多