NG AOT & JIT

本文探讨了Angular应用中AOT编译的原理,包括其与JIT编译的区别,以及AOT编译带来的优势,如更快的渲染、减少异步请求和体积缩小。重点介绍了如何在Angular项目中启用AOT编译,并强调了AOT在安全性上的提升。
摘要由CSDN通过智能技术生成

Angular 应用主要由组件及其 HTML 模板组成。 由于浏览器无法直接理解 Angular 所提供的组件和模板,因此 Angular 应用程序需要先进行编译才能在浏览器中运行.

<aside> 💡 即时编译 (JIT,Just in time),它会在运行期间在浏览器中编译你的应用。 预先编译(AOT,Ahead of time),它会在构建时编译你的应用。

</aside>

<aside> 💡 运行ng build(仅编译)或者 ng serve(编译并启动本地服务器)默认使用JIT编辑; 要使用AOT编辑,ng build --aot 或 ng serve --aot,指定AOT编译即可; 注:带有--prod标志的 ng build 命令默认使用AOT编译;

</aside>

使用AOT的好处

  • 渲染得更快:使用 AOT浏览器下载预编译版本的应用程序。 浏览器直接加载运行代码,所以它可以立即渲染该应用,而不用等应用完成首次编译;
  • 需要的异步请求更少:编译器把外部 HTML 模板和 CSS 样式表内联到了该应用的 JavaScript 中。 消除了用来下载那些源文件的 Ajax 请求;
  • 需要下载的 Angular 框架体积更小:如果应用已经编译过了,自然不需要再下载 Angular 编译器了。 该编译器差不多占了 Angular 自身体积的一半儿,所以,省略它可以显著减小应用的体积;
  • 提早检测模板错误:AOT 编译器在构建过程中检测和报告模板绑定错误,避免用户遇到这些错误;
  • 更安全:AOT 方式会在发给客户端之前就把 HTML 模板和组件编译成 JavaScript 文件。 不需要读取模板,也没有客户端组装 HTML 或执行 JavaScript 的危险操作,受到注入类攻击的机会也比较少。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值