javascript - jQuery:新的临时 DOM 元素的内存管理

标签 javascript jquery html dom garbage-collection

假设我使用 $('some html') 创建一个元素,像这样:

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

我的问题是:

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

最佳答案

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

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

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

关于javascript - jQuery:新的临时 DOM 元素的内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10866834/

相关文章:

javascript - 图像输入不会显示在 $_FILES 中

jquery - 在 Gridview 中添加 jQuery ContextMenu

javascript - jquery文件打破视觉灯箱

javascript - 用一位小数验证jquery中的负数

javascript - 从隐藏的 url 中检索参数

javascript - 使用 jQuery 获取 <select> <option> 的文本不产生 'normal' 结果

javascript - 解析 json jquery

asp.net - 如何在 ASP.NET WebForms 中制作 SEO 友好的 DropDownList?

html - 使用 CSS 的垂直连接线

javascript - 使用不同的对象数据数组更新对象数组