Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.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 角度2+;路由器卸载先前延迟加载的模块_Javascript_Angularjs_Angular_Memory Management_Lazy Loading - Fatal编程技术网

Javascript 角度2+;路由器卸载先前延迟加载的模块

Javascript 角度2+;路由器卸载先前延迟加载的模块,javascript,angularjs,angular,memory-management,lazy-loading,Javascript,Angularjs,Angular,Memory Management,Lazy Loading,我一直在研究许多ngModules,每个模块都封装了自己的一组组件、服务、指令等,它们都很大。现在,我已经准备好将我的应用程序串起来,并将每个模块缓慢地路由到主路由器插座上,我担心的是总体内存消耗,特别是低端设备(只支持平板电脑,不支持移动设备)。所以我的问题是,当路由器延迟加载一个新模块时,前一个延迟加载的模块是否已卸载?我只能找到有关JIT、AOT、预加载和延迟加载的信息,但在后加载上下文中,缺少关于Angular 2+和内存管理的资源或讨论 提前感谢您考虑我的问题。我可以确认,虽然它们最初

我一直在研究许多ngModules,每个模块都封装了自己的一组组件、服务、指令等,它们都很大。现在,我已经准备好将我的应用程序串起来,并将每个模块缓慢地路由到主路由器插座上,我担心的是总体内存消耗,特别是低端设备(只支持平板电脑,不支持移动设备)。所以我的问题是,当路由器延迟加载一个新模块时,前一个延迟加载的模块是否已卸载?我只能找到有关JIT、AOT、预加载和延迟加载的信息,但在后加载上下文中,缺少关于Angular 2+和内存管理的资源或讨论


提前感谢您考虑我的问题。

我可以确认,虽然它们最初不是使用延迟加载方法加载的,但在路由到另一个模块后不会卸载。更糟糕的是,ngx不支持卸载模块。这是一条向布拉德·格林提问的推特

我想添加一个关于卸载组件的快速评论。您可以卸载组件以及与之关联的数据。我知道有两种方法 这是核心的一部分,它的实现与OnInit一样。您应该能够利用这两个功能来帮助解决总体内存负载问题,特别是如果您使用了大量可以取消订阅OnDestroy的服务。

看起来“尚未实现”

但是,开发人员Sander Elias提出了一个解决方案:

刷新内存的唯一方法是重新加载页面。最简单的方法是使用href而不是routerlink在应用程序的某些部分之间导航