[英]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.