JIT vs AOT

Una aplicación Angular consta principalmente de componentes y sus plantillas HTML. Los componentes y plantillas proporcionados por Angular no pueden ser entendidos por el navegador directamente, las aplicaciones en Angular requieren un proceso de compilación antes de que puedan correr en un navegador.

Eligiendo un compilador.

Angular ofrece dos formas para compilar tu aplicación:

  • Just-in-Time (JIT), cuando compila tu aplicación en el navegador en tiempo de ejecución. Este fué el modo de compilación por defecto hasta Angular 8.

  • Ahead-of-Time (AOT), cuando compila tu aplicación y librerías en el tiempo de construcción. Este es el modo de compilación por defecto desde Angular 9.

AOT (Ahead of time)

La compilación anticipada de Angular (AOT) convierte plantillas y código de TypeScript en eficiente código JavaScript durante la fase de construcción antes de que el navegador descargue y corra el código. Compilando tu aplicación durante el proceso de construcción se proporciona una renderización más rápida en el navegador.

Aquí algunas razones por las qué podrías querer usar AOT.

  • Renderizado más rápido Con AOT, el navegador descarga una versión pre compilada de una aplicación. El navegador carga el código ejecutable para que pueda renderizar la aplicación inmediatamente, sin esperar a compilar la aplicación primero.

  • Menos solicitudes asincrónicas El compilador inserta plantillas HTML y hojas de estilo CSS externas dentro de la aplicación JavaScript, eliminando solicitudes ajax separadas para esos archivos fuente.

  • Angular pesa menos No existe necesidad de incluir el compilador de Angular si la aplicación ya esta compilada. El compilador es aproximadamente la mitad de Angular en si mismo, así que omitíendolo se reduce drásticamente el peso de la aplicación.

  • Detecte errores en platillas antes El compilador AOT detecta y reporta errores de enlace de datos en plantillas durante el paso de construcción antes que los usuarios puedan verlos.

  • Mejor seguridad AOT compila las plantillas HTML y componentes en archivos JavaScript mucho antes de que se sirvan a el cliente. Sin plantillas para leer y sin evaluaciones de JavaScript o HTML del lado del cliente riesgosas, existen pocas oportunidades para ataques de inyección.

JIT (Just in time)

¿Qué es el compilador Just in Time (JIT)?

El compilador justo a tiempo(JIT) proporciona compilación durante la ejecución del programa al tiempo que esta corriendo. En palabras simples, el código se compila cuando es necesario, no en el momento de la compilación.

¿Por qué y cuándo debería usar JIT?

  • El compilador justo a tiempo compila cada archivo por separado y se compila principalmente en el navegador.

  • No tiene que volver a compilar su proyecto después de cambiar su código. La mayor parte de la compilación se realiza en el lado del navegador, por lo que tomará menos tiempo de compilación.

  • Si tiene un gran proyecto o una situación en la que algunos de sus componentes no se usan la mayor parte del tiempo, entonces debe usar el compilador Justo a tiempo.

  • El compilador Just in Time es mejor cuando su aplicación está en desarrollo local.

Conclusión

Puede compilar su aplicación angular de dos maneras: JIT y AOT. Ambos son adecuados para un escenario diferente, ya que puede usar JIT para el modo de desarrollo y AOT es mejor en el modo de producción. La implementación de funciones y la depuración son fáciles en el modo JIT, ya que debe asignar archivos map mientras que AOT no lo tiene. Sin embargo, ese AOT brinda un gran beneficio a los desarrolladores angulares para el modo de producción al reducir el tamaño del paquete y hacer que su aplicación se procese más rápido.

Last updated