Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.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 离子3~DOM节点内存泄漏_Javascript_Angular_Memory Leaks_Ionic3_Dom Node - Fatal编程技术网

Javascript 离子3~DOM节点内存泄漏

Javascript 离子3~DOM节点内存泄漏,javascript,angular,memory-leaks,ionic3,dom-node,Javascript,Angular,Memory Leaks,Ionic3,Dom Node,我目前发现我和我的团队正在开发的平台内存泄漏,我尝试了以下方法: 1-在ngFor循环中添加TrackBy() 2-尝试在ngIf和ngFor上尽可能使用异步 3-在.subscribe()之前添加了.TakeUntil(),在ngondstroy()中添加了x.next();x、 完成() 4-在Ngondestory()中添加了clearTimeout 5-在ngOnDestroy()中添加了使所有引用、child和任何变量无效的命令,如下所示:this.y=null 6-在.ts文件中的所

我目前发现我和我的团队正在开发的平台内存泄漏,我尝试了以下方法:

1-在ngFor循环中添加TrackBy()

2-尝试在ngIf和ngFor上尽可能使用异步

3-在.subscribe()之前添加了.TakeUntil(),在ngondstroy()中添加了x.next();x、 完成()

4-在Ngondestory()中添加了clearTimeout

5-在ngOnDestroy()中添加了使所有引用、child和任何变量无效的命令,如下所示:this.y=null

6-在.ts文件中的所有方法上添加了“use strict”标记(用于通知意外全局变量)

7-为垃圾收集器添加了“var”而不是“let”,以检测未使用的引用并销毁它们

8-删除代码中发现的所有循环依赖项

问题:DOM节点在页面打开时增加

已解决:JS中的内存泄漏已解决

离子信息:

cli软件包:

@ionic/cli-utils  : 1.19.2
ionic (Ionic CLI) : 3.20.0
cordova (Cordova CLI) : 9.0.0 (cordova-lib@9.0.1)
@ionic/app-scripts : 3.2.2
Cordova Platforms  : none
Ionic Framework    : ionic-angular 3.9.9
全球方案:

@ionic/cli-utils  : 1.19.2
ionic (Ionic CLI) : 3.20.0
cordova (Cordova CLI) : 9.0.0 (cordova-lib@9.0.1)
@ionic/app-scripts : 3.2.2
Cordova Platforms  : none
Ionic Framework    : ionic-angular 3.9.9
本地套餐:

@ionic/cli-utils  : 1.19.2
ionic (Ionic CLI) : 3.20.0
cordova (Cordova CLI) : 9.0.0 (cordova-lib@9.0.1)
@ionic/app-scripts : 3.2.2
Cordova Platforms  : none
Ionic Framework    : ionic-angular 3.9.9
系统:

Node : v8.8.1
npm  : 6.11.3 
OS   : Windows 10
环境变量:

ANDROID_HOME : not set
杂项:

说明:

未获得任何与DOM节点相关的结果。我认为JS堆大小和JS侦听器正在被清理(与JS相关的任何内容都没有内存泄漏)

但是,即使在清理JS堆大小时,DOM节点在打开另一个页面(不是包含历史的页面,一个新页面)时仍在增加。正在调用Ngondestory,但DOM节点在增加

1-我尝试使用堆快照检测内存泄漏的位置,但没有找到任何结果()。 ,

2-我尝试在时间轴上使用分配工具,但没有得到任何结果

3-我尝试过使用分配抽样,但也没有得到任何结果

我唯一发现的是,导致DOM节点在打开新页面时增加的是分离节点。但之后就没有关于如何清除它们的内容了。

假设:

我认为正在发生的事情:

1-即使DOM节点正在销毁组件,并且称为ngondstroy()的内存没有被释放,这意味着DOM节点正在增加

2-在DOM节点销毁组件或页面后调用Ngondestory()(未找到任何方法检查是否在DOM节点销毁组件之前或之后调用Ngondestory()

有人能帮我吗?或者有什么要点可以帮助我检测和解决DOM节点内存泄漏

附言:如果有人需要更多的细节,请在评论中提及,这样我可以提供更多的信息