节点数量增加,但堆比较显示没有分离的 dom,并且 dom 大小稳定

Posted

技术标签:

【中文标题】节点数量增加,但堆比较显示没有分离的 dom,并且 dom 大小稳定【英文标题】:increasing number of nodes, but heap comparison shows no detached dom, and dom size is stable 【发布时间】:2016-10-03 07:25:03 【问题描述】:

我正在探索 Angular js 应用程序的内存泄漏。我正在使用 chrome devtools 时间线和堆快照比较。我使用以下操作执行一个简单的场景: 1.添加一个新行 2. 删除新行

时间线显示节点数量增加。动作 (1) 添加 89 个节点。操作 (2) 不要像预期的那样删除它们。

当通过比较 2 个堆快照来分析相同的场景时,不会找到分离的 dom。

“正常”的 dom 大小保持稳定。我使用 $('*').length 检查了它。

我可以在哪里寻找时间线所示的这些额外的 dom 节点? 还是可能是其中一个 devtools 功能在撒谎?

感谢任何提示。

edit:难道这个dom节点实际上包含在一些js var中,因此被时间线计算,但没有被堆快照比较记录?

【问题讨论】:

【参考方案1】:

最后这有一个简单的答案。通过使用位于 devtool 窗口顶部的默认值为“Summary”的视图下拉菜单的“containment”选项。

【讨论】:

以上是关于节点数量增加,但堆比较显示没有分离的 dom,并且 dom 大小稳定的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Chrome 开发工具找出引用分离的 DOM 树的内容

JavaScript DOM childNodes.length 还返回文本节点的数量

获取DOM节点的大小

动态添加+动态绑定(vue数据驱动思路)

012.MongoDB读写分离

07-DOM操作练习:innerHTML的方式创建元素