Meskipun ada beberapa jawaban tetapi saya ingin menambahkan beberapa temuan saya juga, karena saya benar-benar bingung dengan apa yang sebenarnya sedang disusun seperti pada semua kasus, TS
-> JS
konversi terjadi. Saya mengambil beberapa paragraf dari blog Jeff sebagai referensi.
JIT
The TS
kode yang ditulis oleh pengembang dikompilasi ke JS
kode. Sekarang, js
kode yang dikompilasi ini dikompilasi oleh browser lagi sehingga html
dapat dirender secara dinamis sesuai dengan tindakan pengguna dan kode yang sesuai untuk angular
(untuk komponen, deteksi perubahan, Injeksi Ketergantungan) juga dihasilkan saat runtime.
(Kompiler browser adalah yang mengambil arahan dan komponen aplikasi, bersama dengan HTML dan CSS yang sesuai, dan membuat pabrik komponen untuk dengan cepat menghapus instance dengan semua logika pembuatan tampilan mereka.)
Ketika aplikasi Angular 2 di-bootstrap di browser, kompilator JIT melakukan banyak pekerjaan untuk menganalisis komponen dalam aplikasi saat runtime dan menghasilkan kode di memori. Saat halaman di-refresh, semua pekerjaan yang telah dilakukan akan dibuang, dan compiler JIT melakukan pekerjaan itu lagi.
AOT
The TS
kode yang ditulis oleh pengembang dikompilasi ke JS
kode, ini js
sudah dikompilasi untuk sudut juga . Sekarang, ini dikompilasi js
kode dikompilasi oleh browser lagi sehingga html
dapat diberikan. Tapi, tangkapannya di sini adalah bahwa fitur-fitur angular
telah ditangani oleh AOT
kompiler dan karenanya browser tidak perlu terlalu khawatir tentang pembuatan komponen, deteksi perubahan, Injeksi Ketergantungan. Jadi kita punya :
Rendering lebih cepat
Dengan AOT, browser mendownload versi aplikasi yang telah dikompilasi sebelumnya. Browser memuat kode yang dapat dieksekusi sehingga dapat langsung merender aplikasi, tanpa menunggu untuk mengompilasi aplikasi terlebih dahulu.
Permintaan asynchronous lebih sedikit
Kompilator menyebariskan template HTML eksternal dan lembar gaya CSS dalam aplikasi JavaScript, menghilangkan permintaan ajax terpisah untuk file sumber tersebut.
Ukuran unduhan kerangka Angular yang lebih kecil
Tidak perlu mengunduh kompiler Angular jika aplikasi sudah dikompilasi. Kompilernya kira-kira setengah dari Angular itu sendiri, jadi mengabaikannya secara dramatis akan mengurangi payload aplikasi.
Deteksi kesalahan template lebih awal
Kompilator AOT mendeteksi dan melaporkan kesalahan pengikatan template selama langkah pembuatan sebelum pengguna dapat melihatnya.
Keamanan yang lebih baik
AOT mengompilasi template dan komponen HTML ke dalam file JavaScript jauh sebelum disajikan ke klien. Tanpa template untuk dibaca dan tidak ada evaluasi JavaScript atau HTML sisi klien yang berisiko, peluang serangan injeksi lebih kecil.
Perbedaan yang tersisa sudah dibahas dalam poin-poin Benyamin, Nisar & Gaurang.
Jangan ragu untuk mengoreksi saya