如果我有权访问angular2应用程序的代码,并且有一个假定延迟加载的模块,有没有办法,独立于检查代码,我可以测试该模块以查看它是否是延迟加载的。如果有必要,没有其他办法,我可以在有问题的模块中添加代码进行测试,如果有可能的话。但是我会添加什么代码?
在Google Chrome浏览器中查看chrome dev工具的网络标签(ctrl + shift + i)。
如果您的模块没有延迟加载,当网站首次加载时,您将在网络选项卡中看到该模块的一行。
如果它正在延迟正确加载,那么只有在导航到相应路径时才会看到模块的行。
希望这可以帮助。
背景概念:首先,关于延迟加载需要明确一件事。当您延迟加载时,它基本上会在内存(RAM)中懒惰地加载模块,而不是从网络或服务器加载。模块(js脚本)已经存在于浏览器缓存(HD)中 - 在应用程序加载期间从网络获取。因此通过延迟加载特定模块有助于内存优化,而不是网络优化。
如何检查:只需将console.log放在模块类定义的构造函数中
import { NgModule } from '@angular/core';
import { LazyComponent } from './lazy.component';
import { LazyService } from './lazy.service';
@NgModule({
imports: [ ],
declarations: [ LazyComponent ],
providers: [LazyService]
})
export class LazyModule {
constructor() {
console.log('Lazily Loaded : LazyModule');
}
}
您可以检查模块是否以惰性或非惰性方式加载。只需要检查元素(在浏览器中右击鼠标)或Ctrl + Shift + I,转到网络选项卡,看到你能够在网络调用中看到chunk.js文件。如果是,您的模块将以惰性方式加载。