Chociaż jest kilka odpowiedzi, ale chciałbym również dodać niektóre z moich ustaleń, ponieważ byłem naprawdę zdezorientowany tym, co faktycznie jest kompilowane, tak jak we wszystkich przypadkach TS
-> następuje JS
konwersja. Jako punkt odniesienia biorę paragraf z bloga Jeffa .
JIT
TS
Kod napisany przez programistę jest kompilowany do JS
kodu. Teraz ten skompilowany js
kod jest ponownie kompilowany przez przeglądarkę, dzięki czemu html
może być renderowany dynamicznie zgodnie z działaniem użytkownika, a odpowiednio kody angular
(dla komponentów, wykrywania zmian, wstrzykiwania zależności) są również generowane w czasie wykonywania.
(Kompilator przeglądarki jest tym, co pobiera dyrektywy i komponenty aplikacji wraz z odpowiadającymi im kodami HTML i CSS i tworzy fabryki komponentów, aby szybko stłumić instancje z całą ich logiką tworzenia widoku).
Kiedy aplikacja Angular 2 jest ładowana w przeglądarce, kompilator JIT wykonuje dużo pracy, aby przeanalizować komponenty aplikacji w czasie wykonywania i wygenerować kod w pamięci. Po odświeżeniu strony cała wykonana praca zostaje wyrzucona, a kompilator JIT wykonuje całą pracę od nowa.
AOT
TS
Kod napisany przez programistę jest kompilowany do JS
kodu, to js
już zostało skompilowane dla kanciasty jak dobrze . Teraz ten skompilowany js
kod jest ponownie kompilowany przez przeglądarkę, aby html
można było renderować. Ale haczyk polega na tym, że kompilator angular
zadbał już o funkcje, AOT
a zatem przeglądarka nie musi się zbytnio martwić o tworzenie komponentów, wykrywanie zmian, wstrzykiwanie zależności. Więc mamy :
Szybsze renderowanie
Dzięki AOT przeglądarka pobiera wstępnie skompilowaną wersję aplikacji. Przeglądarka ładuje kod wykonywalny, dzięki czemu może natychmiast wyrenderować aplikację, bez konieczności uprzedniego skompilowania aplikacji.
Mniej żądań asynchronicznych
Kompilator wbudowuje zewnętrzne szablony HTML i arkusze stylów CSS w JavaScript aplikacji, eliminując oddzielne żądania ajax dla tych plików źródłowych.
Mniejszy rozmiar pobierania frameworka Angular
Nie ma potrzeby pobierania kompilatora Angular, jeśli aplikacja jest już skompilowana. Kompilator to mniej więcej połowa samego Angulara, więc pominięcie go radykalnie zmniejsza obciążenie aplikacji.
Wykryj błędy szablonu wcześniej
Kompilator AOT wykrywa i raportuje błędy powiązań szablonu na etapie kompilacji, zanim użytkownicy będą mogli je zobaczyć.
Lepsze bezpieczeństwo
AOT kompiluje szablony i komponenty HTML do plików JavaScript na długo przed udostępnieniem ich klientowi. Brak szablonów do odczytania i ryzykowna ocena kodu HTML lub JavaScript po stronie klienta oznacza mniej okazji do ataków typu iniekcja.
Pozostałe różnice omówiono już w punktach Benyamin, Nisar i Gaurang.
Zapraszam do poprawiania mnie