Bien qu'il y ait quelques réponses, je voudrais aussi ajouter certaines de mes conclusions, car J'ai été vraiment confus avec ce qui a été compilé. comme dans tous les cas, TS
--> JS
la conversion se produit. Je prends un peu de para de Le blog de Jeff comme référence.
JIT
Le site TS
le code écrit par le développeur est compilé en JS
code. Maintenant, ce code compilé js
Le code est à nouveau compilé par le navigateur afin que le html
peuvent être rendus de manière dynamique en fonction de l'action de l'utilisateur et les codes correspondants pour les angular
( pour les composants, la détection des changements, l'injection de dépendances) sont également générés au moment de l'exécution.
(Le compilateur du navigateur est ce qui prend les directives et les composants d'une application, ainsi que leur HTML et CSS correspondants, et crée des usines de composants pour estampiller rapidement les instances avec toute leur logique de création de vues).
Lorsqu'une application Angular 2 est amorcée dans le navigateur, le compilateur JIT effectue un travail considérable 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 rafraîchie, tout le travail qui a été effectué est jeté et le compilateur JIT recommence tout le travail.
AOT
Le site TS
le code écrit par le développeur est compilé en JS
code, ce js
a déjà été compilé pour angular également . Maintenant, cette compilé js
Le code est à nouveau compilé par le navigateur afin que le html
peut être rendu. Mais, Le problème ici est que les caractéristiques de angular
ont déjà été prises en charge par AOT
Le compilateur et donc le navigateur n'ont pas à s'inquiéter beaucoup. sur la création de composants, la détection des changements, l'injection de dépendances. Donc, nous avons :
Rendu plus rapide
Avec l'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 la compilation préalable de l'application.
Moins de demandes asynchrones
Le compilateur intègre les modèles HTML externes et les feuilles de style CSS dans le JavaScript de l'application, éliminant ainsi les requêtes ajax distinctes pour ces fichiers sources.
Réduction de la taille de téléchargement du framework Angular
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, de sorte que son omission réduit considérablement la charge utile de l'application.
Détecter plus tôt les erreurs de modèle
Le compilateur AOT détecte et signale les erreurs de liaison des modèles pendant l'étape de construction, avant que les utilisateurs ne puissent les voir.
Une meilleure sécurité
AOT compile les modèles et les composants HTML en fichiers JavaScript bien avant qu'ils ne soient servis au client. Comme il n'y a pas de modèles à lire et qu'il n'y a pas d'évaluation risquée du HTML ou du JavaScript côté client, il y a moins de possibilités d'attaques par injection.
Les différences restantes sont déjà couvertes par les points de Benyamin, Nisar et Gaurang.
N'hésitez pas à me corriger