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

两种方式来编译angular应用程序:

  1. 即时编译 (JIT,Just in time),它会在运行期间在浏览器中编译你的应用。

  2. 预先编译(AOT,Ahead of time),它会在构建时编译你的应用。

注:当你运行 ng build(仅编译)或 ng serve(编译并启动本地服务器) 这两个 CLI 命令时 JIT 编译是默认选项;要进行 AOT 编译,只要让 ng build 或 ng serve 命令中包含 --aot 标志。

带有 --prod 标志的 ng build 命令 (ng build --prod) 会默认使用 AOT 编译。

一:AOT:在浏览器下载和运行代码之前的编译阶段,Angular 预先(AOT)编译器会先把你的 Angular HTML 和 TypeScript 代码转换成高效的 JavaScript 代码。好处如下:

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

最新文章

  1. Sharepoint 2013 网站集的删除与还原
  2. django-cms 代码研究(七)杂七杂八
  3. STM32F0xx_USART收发配置详细过程
  4. 配置Symfony2
  5. Java7编程高手进阶读书笔记—集合框架
  6. redis-在乌班图下设置自动启动
  7. UI3_UIView自动布局
  8. mysql之创建外键报150错误的处理方法
  9. C#中通过调用Dll函数时,执行一段时间后,就会报内存可能被破坏的错的解决办法
  10. SQL Server数据类型
  11. javascript的DOM操作(二)
  12. php 添加 redis 扩展模块
  13. "the hypervisor is not running" 故障
  14. 同一台电脑使用 gitlab 和 github 配置
  15. Findbug在项目中的运用--提高代码质量
  16. 分布式事务 spring 两阶段提交 tcc
  17. U3D面试题系列二
  18. nodejs--路径问题
  19. beebase
  20. JAVA HW2

热门文章

  1. 大数据之Linux用户权限设置
  2. Cannot forward after response has been committed问题的解决
  3. Java中final修饰的数据
  4. docker入门-镜像管理命令篇
  5. firefox浏览器写xpath
  6. 快速失败(fail-fast)和安全失败(fail-safe)的区别是什么?
  7. webpack安装出错(电脑设置了代理)
  8. python并发之多进程
  9. PWN INTEGER OVERFLOW 整数溢出
  10. 【CV现状-3.0】"目标"是什么