Javascript 站点加载问题:Angular 6项目加载时间过长
在上图中,很明显我的应用程序第一次加载花费的时间太长(如图所示为3分钟)。我找不到真正的原因 有关我的申请的一些详细信息:Javascript 站点加载问题:Angular 6项目加载时间过长,javascript,css,angular,performance,sass,Javascript,Css,Angular,Performance,Sass,在上图中,很明显我的应用程序第一次加载花费的时间太长(如图所示为3分钟)。我找不到真正的原因 有关我的申请的一些详细信息: 我的项目中总共只有13个组件 我没有使用延迟加载,因为在我看来,它不够大,无法使用延迟加载。因为构建后main.js文件大小只有2.4MB 为了缩小尺寸,我甚至删除了spec.ts文件和不需要的.scss文件 整个项目中有6.svg文件 这是我用来建造房子的命令。”ng构建--prod--aot' 如果需要进一步的详细信息,我将提供,请帮助我找出延迟背后的实际原因。利用角度
如果需要进一步的详细信息,我将提供,请帮助我找出延迟背后的实际原因。利用角度路由器和模块延迟加载。例如,创建相关组件的模块,并在访问vie时加载特定的js文件 在本例中,当访问
customer
route时,它将加载相关的js文件,其他模块也是如此
const routes: Routes = [
{
path: 'customers',
loadChildren: './customers/customers.module#CustomersModule'
},
{
path: 'orders',
loadChildren: './orders/orders.module#OrdersModule'
}
];
您还可以运行
ngbuild--prod
。这将压缩代码,消除死代码利用角度路由器和模块延迟加载的优势。例如,创建相关组件的模块,并在访问vie时加载特定的js文件
在本例中,当访问customer
route时,它将加载相关的js文件,其他模块也是如此
const routes: Routes = [
{
path: 'customers',
loadChildren: './customers/customers.module#CustomersModule'
},
{
path: 'orders',
loadChildren: './orders/orders.module#OrdersModule'
}
];
您还可以运行ngbuild--prod
。这将压缩代码,消除死代码
spec
文件不会出现在构建中,.scss
文件被编译成JS(无论您使用的是内联样式还是URL样式,在最终构建中都没有区别)spec
文件不会出现在构建中,.scss
文件被编译成JS(无论您使用的是内联样式还是URL样式,在最终构建中都没有区别)我看不到图像,但你在应用程序上运行了吗?它可能会告诉你你可以改进什么 2.4 MB对于生产构建来说不是很大???那么什么是大的呢
spec.ts
文件根本不参与捆绑包大小您是否尝试过消除https,并查看该问题是否在标准http上继续存在?除此之外,我建议在您的internet连接上运行速度测试,如果这是一个intranet解决方案,那么就开始在内部网络上的文件传输上运行速度测试。根据时间轴屏幕截图,它看起来像是花在网络上获取代码的时间-如果我记得Chrome的颜色编码正确,时间专门花在下载响应上。您应该仔细检查您的网络配置。2.4 MB对于生产构建来说不是很大???那么什么是大的呢spec.ts
文件根本不参与捆绑包大小您是否尝试过消除https,并查看该问题是否在标准http上继续存在?除此之外,我建议在您的internet连接上运行速度测试,如果这是一个intranet解决方案,那么就开始在内部网络上的文件传输上运行速度测试。根据时间轴屏幕截图,它看起来像是花在网络上获取代码的时间-如果我记得Chrome的颜色编码正确,时间专门花在下载响应上。您应该仔细检查您的网络配置。非常感谢您的建议。我将尝试使用延迟加载转换代码。这可能会解决问题。延迟加载是唯一的解决方案吗?还有别的办法解决这个问题吗。。因为在这一点上转换我的整个代码会造成一点混乱。我只是想问一下,非常感谢你的建议。我将尝试使用延迟加载转换代码。这可能会解决问题。延迟加载是唯一的解决方案吗?还有别的办法解决这个问题吗。。因为在这一点上转换我的整个代码会造成一点混乱。所以我想问一下,非常感谢您的详细解释。有没有其他方法可以解决这个问题呢。因为在这一点上转换我的整个代码会造成一点混乱。延迟加载不会改变你的代码(除了路由),你可以在几秒钟内实现它。如果您的目标是减少捆绑包的大小,我建议您从模块中删除未使用的模块,删除未使用的依赖项,激活树抖动,降低代码复杂性,实现服务器端呈现,延迟加载,最后,根据您的服务器,您可以根据应用程序的URL加载文件。非常感谢您的详细解释。除了延迟加载,还有其他方法解决此问题吗。因为在这一点上转换我的整个代码会造成一点混乱。延迟加载不会改变你的代码(除了路由),你可以在几秒钟内实现它。如果您的目标是减少捆绑包的大小,我建议您从模块中删除未使用的模块,删除未使用的模块