Angular 首屏加载优化

本文探讨Angular应用的首屏加载优化,包括AOT编译减少编译时间和体积,使用bundle-analyzer分析并优化vendor.bundle.js,实现按需导入rxjs,以及通过惰性加载和服务器端渲染进一步提升加载速度。
摘要由CSDN通过智能技术生成

Angular 应用主要包含组件和它们的HTML模板。 在浏览器可以渲染应用之前,组件和模板必须要被Angular编译器转换为可以执行的JavaScript。最简单的方式就是将所有代码加载到浏览器中,包括我们自己写的组件的 Angular 编译器,然后在浏览器中编译,这种编译方式就是 JIT(Just-in-Time).

JIT 编译与比较大的性能问题。由于需要在浏览器中执行这个编译过程,因此视图需要花更长时间才能渲染出来。而且编译所需要的 Angular 编译器和许多应用并不需要的库也会发送到浏览器,这导致应用体积变大,浏览器加载速度也变慢。


AOT 编译

AOT(Ahead of Time) 编译方式会首先在本地将应用编译完成,因此可以节省在浏览器上的首次编译时间,而且编译完后的应用不再需要 Angular 编译器了,因此体积也大大缩小了。

使用 AOT 编译可以在 官方文档 看到。

当然最简单的方式是使用 angular-cli

下面看两种编译方式的体积大小以及应用加载速度

首先是体积大小,下面主要观察 vendor.bundle.js 文件的大小,该文件中打包了应用所依赖的 node_module 中的库。

JIT 模式下 vendor.bundle.js 的体积为 3.2M

jit-network

js加载时间大概为 1.1s

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值