【问题标题】:jQuery: memory management for new, temporary DOM elementsjQuery:新的临时 DOM 元素的内存管理
【发布时间】:2012-06-02 23:54:34
【问题描述】:

假设我使用$('some html') 创建一个元素,如下所示:

var imgSrc = determineImageURL();
var myImg = $('<img>', { src: imgSrc })[0]; // Creates a new <img>.

我的问题是:

  • 谁是新元素的父元素? 文档窗口?没有任何?所有浏览器都一样吗?
  • 假设我需要多次运行该代码,并且每次计算一个可能不同的 imgSrc。当 myImg 更改或当前函数返回时,新元素是否会变成垃圾(并且可能会被收集)?或者我必须保留一个 并且只更改 src 属性?

【问题讨论】:

    标签: javascript jquery html dom garbage-collection


    【解决方案1】:

    myImg 的父级取决于您将其附加到的位置。仅给出您引用的代码,没有。

    如果您没有将节点附加到函数中的父节点,则函数返回时新元素将被垃圾回收。

    使用var 声明的变量仅在函数范围内存在,除非您创建对它的其他引用(附加到父级或在闭包中引用)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-21
      • 2012-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-14
      • 1970-01-01
      • 2012-12-24
      相关资源
      最近更新 更多