Angular — JIT VS AOT
Just-in-Time (JIT) คือ compiler จะ compiles app ตอน runtime
เป็นค่า default ตั้งแต่ angular 2 ถึง 8
Ahead-of-Time (AOT) คือ compiler จะ compiles app ตอน build time.
เป็นค่า default ตั้งแต่ angular 9
แล้ว Runtime และ Build time คืออะไร
Runtime คือ ช่วงเวลาที่โปรแกรมเริ่มทำงานตั้งแต่ต้น จนจบ
บางภาษาอย่าง java บางคนอาจจะเคยเจอคำว่า java runtime error
นั้นหมายถึง โปรแกรมรันแล้ว error ทั้งๆที่ syntax ถูกต้อง
case แบบนี้อาจจะเกิดจากกรณีอย่างเช่น index array ผิด หรือ หารด้วย input 0
ส่วน runtime ใน angular หมายถึง โปรแกรมจะ compiles ทุกครั้ง
ที่โหลดหน้าเว็บใหม่ ทีนี้ใน angular จะมี [ng serve] ที่จะ rebuild ทุกครั้งที่ file changes
ซึ่งจะเห็นว่าในทางการใช้งาน เราแทบไม่รู้สึกเลยว่า JIT และ AOT ต่างกัน
เพราะ angular มัน compiles เสร็จหมดแล้ว
Build time คือ ช่วงเวลาในการ build file
อาจจะสังสัยกว่า Runtime ทำไมต้อง compiles ทุกครั้งเลยละ
ทำไมไม่ compiles ตอน build ให้เสร็จทีเดียว
จากนั้นก็หยิบไปใช้งาน
มาดูรูปประกอบครับ