javascript - Angular 使用大量分离节点泄漏内存(使用 entryComponents)
问题描述
我有一个简单的应用程序,它使用entryComponents
withComponentFactoryResolver.resolveComponentFactory
以非常高的速率根据数据注入组件。我使用viewContainerRef.clear();
并且每个注入的组件都有一个 OnDestroy 方法。据我所知,我的代码没有泄漏任何东西(销毁时取消订阅每个可观察的)但是为什么 Angular 将所有这些分离的节点保留在内存中?
我使用了很多 ngIf、ngFor、ngClass 等。我认为垃圾收集器应该把这些未使用的节点扔掉。但他没有。
有谁知道我应该寻找什么?还是我的基本假设是错误的,即 clear 应该解决这个问题?如果是这样,我该如何手动调用 OnDestroy 并删除组件?
解决方案
推荐阅读
- php - PHP - 带有准备好的语句和参数化查询的会话变量
- r - R: Faster alternative to generate unequal factor levels
- r - 将持续时间 %H:%M:%S 转换为秒
- php - 如何在yii2网格视图中将两列相乘
- ios - Firebase/Core 在 info.plist 文件中需要 NSLocationWhenInUseUsageDescription
- sql - 如何在查询中获取列中的行
- java - 使用 google_checks 时,Checkstyle Maven 插件执行不会因错误而失败
- python - 使用 Python 在 microsoft Graph 中创建电子邮件跟踪服务
- excel - 将数据透视表中的数据显示为 %
- c# - 如何从 mvc 项目执行 windows 窗体项目方法?