Bien qu'il y ait des réponses, mais j'aimerais aussi ajouter certaines de mes découvertes, car j'étais vraiment confus avec ce qui est réellement compilé comme dans tous les cas, TS-> la JSconversion se produit. Je prends quelques para du blog de Jeff comme référence.
JIT
Le TScode écrit par le développeur est compilé en JScode. Maintenant, ce jscode compilé est à nouveau compilé par le navigateur afin que le htmlpuisse être rendu dynamiquement selon l'action de l'utilisateur et en conséquence les codes pour angular (pour les composants, la détection de changement, l'injection de dépendances) sont également générés au moment de l'exécution.
(Le compilateur de navigateur est ce qui prend les directives et les composants d'une application, ainsi que leurs codes HTML et CSS correspondants, et crée des fabriques de composants pour éliminer rapidement les instances avec toute leur logique de création de vue.)
Lorsqu'une application Angular 2 est amorcée dans le navigateur, le compilateur JIT effectue beaucoup de travail pour analyser les composants de l'application au moment de l'exécution et générer du code en mémoire. Lorsque la page est actualisée, tout le travail qui a été effectué est jeté et le compilateur JIT refait le travail.
AOT
Le TScode écrit par le développeur est compilé en JScode, cela js
a déjà été compilé pour angular également . Maintenant, ce code compilé js est à nouveau compilé par le navigateur afin que le htmlfichier puisse être rendu. Mais le problème ici est que les fonctionnalités de angularont déjà été prises en charge par le AOTcompilateur et que le navigateur n'a donc pas à se soucier beaucoup de la création de composants, de la détection des changements, de l'injection de dépendances. Donc nous avons :
Rendu plus rapide
Avec AOT, le navigateur télécharge une version pré-compilée de l'application. Le navigateur charge le code exécutable afin de pouvoir rendre l'application immédiatement, sans attendre de compiler l'application au préalable.
Moins de requêtes asynchrones
Le compilateur intègre des modèles HTML externes et des feuilles de style CSS dans le JavaScript de l'application, éliminant ainsi les requêtes ajax distinctes pour ces fichiers source.
Taille de téléchargement du framework angulaire plus petite
Il n'est pas nécessaire de télécharger le compilateur Angular si l'application est déjà compilée. Le compilateur représente environ la moitié d'Angular lui-même, donc l'omettre réduit considérablement la charge utile de l'application.
Détecter les erreurs de modèle plus tôt
Le compilateur AOT détecte et signale les erreurs de liaison de modèle au cours de l'étape de génération avant que les utilisateurs puissent les voir.
Meilleure sécurité
AOT compile les modèles et composants HTML dans des fichiers JavaScript bien avant qu'ils ne soient servis au client. Sans modèles à lire et sans évaluation HTML ou JavaScript côté client, les opportunités d'attaques par injection sont moins nombreuses.
Les différences restantes sont déjà couvertes dans les puces de Benyamin, Nisar et Gaurang.
N'hésitez pas à me corriger