gpt4 book ai didi

javascript - DOM 节点未被垃圾回收

转载 作者:行者123 更新时间:2023-11-30 00:32:12 25 4
gpt4 key购买 nike

我对使用 Chrome 的开发者工具调试单页 Web 应用程序中的内存泄漏有疑问。

根据谷歌的 documentation ,在获取堆快照后,您将看到红色和黄色的分离 DOM 节点。黄色节点是那些仍在被 JavaScript 引用的节点,有效地代表了泄漏的原因。红色节点未在 JavaScript 中直接引用,但它们仍然“活着”——可能是因为它们是黄色节点的 DOM 树的一部分。

通过向下钻取我的堆快照中的所有黄色节点并找到代码中仍有对它们的引用的位置,我已经能够修复多个内存泄漏。然而,现在我遇到了一个我不确定如何处理的情况:只有红色节点出现在我的堆快照中!

如果没有对这些节点的 JavaScript 引用,它们不会被垃圾回收的其他一些原因是什么?另外,为什么说有155个条目却只显示60个?我想知道 Chrome 是否只是没有显示一个或多个黄色节点:

No references in JavaScript, but still not garbage collected?

最佳答案

根据您的要求,将其添加为 asnwer。您是否查看了这些 DOM 元素中的任何一个的更多详细信息以查看它们是哪些 DOM 元素,也许这会为您提供有关哪些代码曾经引用过它们的线索。使某些人感到困惑的一种引用来源是您已经完成但由于某种原因仍然存在的闭包。

关于javascript - DOM 节点未被垃圾回收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29021880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com