Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 文档Dom树与分离的Dom树?_Javascript_Memory Leaks_Google Chrome Devtools - Fatal编程技术网

Javascript 文档Dom树与分离的Dom树?

Javascript 文档Dom树与分离的Dom树?,javascript,memory-leaks,google-chrome-devtools,Javascript,Memory Leaks,Google Chrome Devtools,我正在使用chrome查找内存泄漏(新手:) 如何识别内存泄漏的位置 什么是文档DOM树和分离的DOM树 谁能解释一下吗?识别内存泄漏的步骤。 从隐姓埋名模式开始 打开你的申请表 打开Chrome开发工具(我喜欢在自己的窗口中完全最大化地打开它) 点击配置文件 使用“获取堆快照”选项并单击“快照” 对应用程序执行一些特定步骤 点击左上角的黑色圆圈,再拍一张快照 再重复步骤5至7 2次 检查保留的大小-如果它继续增加-您有内存问题 在时间线选项卡下,单击垃圾收集器按钮 再拍一张快照,看看内存是否降

我正在使用chrome查找内存泄漏(新手:)

如何识别内存泄漏的位置

什么是文档DOM树和分离的DOM树


谁能解释一下吗?

识别内存泄漏的步骤。

  • 从隐姓埋名模式开始
  • 打开你的申请表
  • 打开Chrome开发工具(我喜欢在自己的窗口中完全最大化地打开它)
  • 点击配置文件
  • 使用“获取堆快照”选项并单击“快照”
  • 对应用程序执行一些特定步骤
  • 点击左上角的黑色圆圈,再拍一张快照
  • 再重复步骤5至7 2次
  • 检查保留的大小-如果它继续增加-您有内存问题
  • 在时间线选项卡下,单击垃圾收集器按钮
  • 再拍一张快照,看看内存是否降到了合理的水平
  • 识别分离的DOM树的步骤

  • 要检测分离的DOM树,请单击其中一个快照上的Profile选项卡
  • 您将看到许多对象—请尝试通过键入DOM对其进行过滤,如图所示
  • 如果您看到任何分离的DOM树,那么您“可能”有问题。您正在做的事情可能需要保留一些DOM用于克隆等,因此必须排除这种情况。如果您看到任何超出此范围的DOM,您需要担心它们,特别是如果这是一个单页应用程序,因为其他应用程序很快就会重新加载整个程序,这可能会清除内存
  • 您可以检查分离的DOM树,如下所示

  • 要检查DOM是什么,您可能需要将鼠标悬停在红色HTML元素上,如下所示。这有助于在找到DOM后进行调试

  • 什么是“文档DOM树”? 整个文档内部是一个大DOM树。文档是XML,标记嵌套在一起,从而形成一棵树。(DOM-文档对象模型。)

    那么什么是“分离的DOM树”?

    HTML元素是消耗内存的对象的实例。 每个这样的元素都可以存储事件监听器和与之相关的数据。 现在,“分离的DOM树”只不过是浏览器内存中的DOM,但没有连接到主DOM树(也称为“文档DOM树”)

    通过检查这些挂起的对象,我们可以检测问题并避免内存泄漏

    解决这个问题是一个广泛的话题,因为你可能会看到一些不同的解决方案。下面的帖子介绍了一些人为解决这个问题所做的工作


    @hbhantol,感谢您提供详细信息。感谢您的时间和努力。:)谢谢你@bhantol!如果有人需要重新创建分离的DOM树场景,请遵循以下步骤: