# การปรับแต่งประสิทธิภาพ (Angular) > OnPush strategy, trackBy, virtual scrolling, lazy loading, preloading, bundle size, Core Web Vitals, profiling - 22 คำถามสัมภาษณ์ - Senior - [คำถามสัมภาษณ์: Angular](https://sharpskill.dev/th/technologies/angular/interview-questions.md) ## 1. กลยุทธ์ OnPush ใน Angular คืออะไร? **คำตอบ** OnPush เป็นกลยุทธ์ change detection ที่จำกัดการตรวจสอบเฉพาะกรณีที่ input ของคอมโพเนนต์เปลี่ยนแปลงโดยการอ้างอิงหรือเมื่อมีเหตุการณ์ภายในเกิดขึ้น การปรับแต่งนี้ลดจำนวนรอบการตรวจจับในแอปพลิเคชันที่ซับซ้อนได้อย่างมาก การใช้ OnPush เป็นค่าเริ่มต้นกับคอมโพเนนต์เชิงนำเสนอเป็นแนวทางปฏิบัติที่ดีที่สุดสำหรับการปรับปรุงประสิทธิภาพ ## 2. บทบาทหลักของ trackBy ในไดเรกทีฟ ngFor คืออะไร? **คำตอบ** trackBy ช่วยให้ Angular ระบุแต่ละรายการในลิสต์ได้อย่างไม่ซ้ำกัน จึงหลีกเลี่ยงการสร้าง DOM ใหม่ทั้งหมดในระหว่างการอัปเดต หากไม่มี trackBy Angular จะทำลายและสร้างองค์ประกอบทั้งหมดใหม่แม้ว่าจะมีการเปลี่ยนแปลงเพียงรายการเดียว การใช้ trackBy กับตัวระบุที่ไม่ซ้ำกันช่วยปรับปรุงประสิทธิภาพของลิสต์แบบไดนามิกได้อย่างมาก ## 3. lazy loading ในบริบทของ routing ของ Angular คืออะไร? **คำตอบ** lazy loading เป็นเทคนิคการโหลดโมดูลแบบเลื่อนเวลาที่ดาวน์โหลดโค้ดเฉพาะเมื่อเส้นทางที่เกี่ยวข้องถูกเปิดใช้งาน สิ่งนี้ช่วยลดขนาด bundle เริ่มต้นและเร่งความเร็วในการแสดงผลครั้งแรกของแอปพลิเคชัน โมดูลที่ lazy load จะถูกกำหนดด้วย loadChildren ในการกำหนดค่าเส้นทาง ## มีอีก 19 คำถาม - ควรเรียกเมธอดใดเพื่อบังคับการตรวจสอบด้วย OnPush? - ข้อได้เปรียบหลักของ virtual scrolling สำหรับลิสต์ขนาดใหญ่คืออะไร? สมัครฟรี: https://sharpskill.dev/th/login ## หัวข้อสัมภาษณ์ Angular อื่นๆ - [พื้นฐาน TypeScript](https://sharpskill.dev/th/technologies/angular/interview-questions/typescript-basics.md): 25 คำถาม, Junior - [TypeScript ขั้นสูง](https://sharpskill.dev/th/technologies/angular/interview-questions/typescript-advanced.md): 20 คำถาม, Junior - [พื้นฐาน Angular](https://sharpskill.dev/th/technologies/angular/interview-questions/angular-fundamentals.md): 20 คำถาม, Junior - [คอมโพเนนต์และวงจรชีวิต](https://sharpskill.dev/th/technologies/angular/interview-questions/components-lifecycle.md): 20 คำถาม, Junior - [Services & Dependency Injection](https://sharpskill.dev/th/technologies/angular/interview-questions/services-dependency-injection.md): 20 คำถาม, Junior - [การจัดระเบียบโมดูล Angular](https://sharpskill.dev/th/technologies/angular/interview-questions/modules-organization.md): 22 คำถาม, Mid-Level - [Angular CLI](https://sharpskill.dev/th/technologies/angular/interview-questions/angular-cli.md): 18 คำถาม, Junior - [Directives และ Pipes](https://sharpskill.dev/th/technologies/angular/interview-questions/directives-pipes.md): 22 คำถาม, Mid-Level - [Routing และการนำทาง](https://sharpskill.dev/th/technologies/angular/interview-questions/routing-navigation.md): 24 คำถาม, Mid-Level - [Reactive Forms](https://sharpskill.dev/th/technologies/angular/interview-questions/forms-reactive.md): 26 คำถาม, Mid-Level - [Template-driven Forms](https://sharpskill.dev/th/technologies/angular/interview-questions/forms-template-driven.md): 16 คำถาม, Mid-Level - [พื้นฐาน RxJS](https://sharpskill.dev/th/technologies/angular/interview-questions/rxjs-fundamentals.md): 22 คำถาม, Mid-Level - [Operator ของ RxJS](https://sharpskill.dev/th/technologies/angular/interview-questions/rxjs-operators.md): 24 คำถาม, Mid-Level - [HttpClient และการเรียก API](https://sharpskill.dev/th/technologies/angular/interview-questions/http-client.md): 22 คำถาม, Mid-Level - [การจัดการ state พื้นฐาน](https://sharpskill.dev/th/technologies/angular/interview-questions/state-management-basics.md): 20 คำถาม, Mid-Level - [Change Detection](https://sharpskill.dev/th/technologies/angular/interview-questions/change-detection.md): 20 คำถาม, Mid-Level - [Angular Signals](https://sharpskill.dev/th/technologies/angular/interview-questions/angular-signals.md): 20 คำถาม, Mid-Level - [Standalone Components](https://sharpskill.dev/th/technologies/angular/interview-questions/standalone-components.md): 18 คำถาม, Mid-Level - [การทำ Unit Testing ใน Angular](https://sharpskill.dev/th/technologies/angular/interview-questions/testing-unit.md): 22 คำถาม, Mid-Level - [การทดสอบ End-to-End](https://sharpskill.dev/th/technologies/angular/interview-questions/testing-e2e.md): 18 คำถาม, Mid-Level - [Build และการเพิ่มประสิทธิภาพ](https://sharpskill.dev/th/technologies/angular/interview-questions/build-optimization.md): 20 คำถาม, Mid-Level - [พื้นฐาน NgRx](https://sharpskill.dev/th/technologies/angular/interview-questions/ngrx-fundamentals.md): 24 คำถาม, Senior - [NgRx ขั้นสูง](https://sharpskill.dev/th/technologies/angular/interview-questions/ngrx-advanced.md): 24 คำถาม, Senior - [สถาปัตยกรรม Angular](https://sharpskill.dev/th/technologies/angular/interview-questions/angular-architecture.md): 22 คำถาม, Senior - [ความปลอดภัยและแนวทางปฏิบัติที่ดี](https://sharpskill.dev/th/technologies/angular/interview-questions/security-best-practices.md): 20 คำถาม, Senior - [รูปแบบ RxJS ขั้นสูง](https://sharpskill.dev/th/technologies/angular/interview-questions/advanced-rxjs-patterns.md): 22 คำถาม, Senior - [Angular Universal และ SSR](https://sharpskill.dev/th/technologies/angular/interview-questions/angular-universal-ssr.md): 20 คำถาม, Senior - [Angular Micro-frontends](https://sharpskill.dev/th/technologies/angular/interview-questions/micro-frontends-angular.md): 20 คำถาม, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/th/technologies/angular/interview-questions/performance-optimization