关闭angular/mat-dialog后出现内存泄漏问题求助
Angular Material Dialog 内存泄漏问题:已分离DOM元素无法释放
打开并关闭mat-dialog后,与对话框及其内容关联的DOM元素会以已分离元素的形式留存于内存中。每次执行打开/关闭操作,该问题都会重复出现,已分离元素的数量只增不减,始终无法被垃圾回收机制释放。
复现步骤
- 创建新的Angular项目
- 生成一个基于Angular Material Dialog的对话框组件
- 在对话框组件的
dialog-component.html中添加任意DOM元素 - 编译并运行项目
- 打开Chrome开发者工具的「Memory」标签页
- 使用内存工具拍摄初始快照
- 多次打开并关闭对话框,手动触发垃圾回收
- 拍摄第二次内存快照
- 对比两次快照数据
- 查看「Detached」区域的元素统计
观察到的行为
每次完成一次打开/关闭周期后,内存中都会留存多个已分离的<mat-dialog-container>实例,以及其包含的所有子元素。
预期行为
关闭mat-dialog后,内存中不应留存任何已分离的相关DOM元素,避免出现内存泄漏问题。
内容的提问来源于stack exchange,提问作者Chrisurfeur
相关产品推荐
相关产品推荐

