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 JSkonwersja. Jako punkt odniesienia biorę paragraf z bloga Jeffa .
JIT
TSKod napisany przez programistę jest kompilowany do JSkodu. Teraz ten skompilowany jskod jest ponownie kompilowany przez przeglądarkę, dzięki czemu htmlmoż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
TSKod napisany przez programistę jest kompilowany do JSkodu, to js
już zostało skompilowane dla kanciasty jak dobrze . Teraz ten skompilowany js kod jest ponownie kompilowany przez przeglądarkę, aby htmlmożna było renderować. Ale haczyk polega na tym, że kompilator angularzadbał już o funkcje, AOTa 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