繁体   English   中英

显式删除 DOM 元素以避免 javascript 中的 memory 泄漏

[英]Remove DOM element explicitly to avoid memory leakage in javascript

我正在查看 MDN 中关于垃圾收集的文档 当我遇到“现实生活中的示例”部分时,以下语句中的“明确删除”一词让我感到困惑。

如果该属性未显式删除或为空,则引用计数垃圾收集器将始终具有至少一个完整的引用,并且将保留 memory 中的 DOM 元素,即使它已从 DOM 树中删除

document.removeChild能否满足显式删除 DOM 元素的条件?

document.removeChild能否满足显式删除 DOM 元素的条件?

这个问题表明了一些混乱:没有明确删除 DOM 节点的标准。 从 DOM 中删除一个元素,无论是显式还是隐式(通过从其下降的祖先元素中删除),应该使其可用于 memory 集合,假设代码中没有保留对已删除元素的引用。 引用文章开头提到的属性是指示例中使用的div.circularReference属性,其值设置为div以创建从属性到元素的循环引用。

可以通过删除或更改属性的值来显式删除“属性”,例如使用

 div.circularReference = null; // or
 delete div.circularReference;

可以在从 DOM 中删除div之前或之后删除循环引用。 好消息是,文章称现代浏览器不再使用引用计数垃圾收集器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM