ระบบต้องป้องกันคำขอจำนวนมากและการใช้ทรัพยากรเกินขอบเขต จึงพิจารณาว่า นักพัฒนาพบว่าเว็บแอปพลิเคชัน SPA มีปัญหา Memory Leak เมื่อผู้ใช้ท่องเว็บนานๆ เบราว์เซอร์ช้าลงเรื่อยๆ สาเหตุที่พบบ่อยที่สุดและวิธีแก้ที่ถูกต้องคืออะไร

สาเหตุคือใช้ HTTP แทน HTTPS และวิธีแก้คือเปลี่ยนเป็น HTTPS
สาเหตุคือ CSS มีขนาดใหญ่เกินไปและวิธีแก้คือลด CSS
สาเหตุคือ Event Listeners หรือ Subscriptions ที่ไม่ถูก Remove เมื่อ Component ถูก Destroy และวิธีแก้คือ Cleanup ใน Lifecycle Hook
สาเหตุคือโค้ด JavaScript ไม่ถูก Minify และวิธีแก้คือใช้ Build Tool

เฉลยอธิบาย

Memory Leak ใน SPA มักเกิดจาก Event Listeners ที่ Register ไว้แต่ไม่ Remove เมื่อ Component ถูก Unmount, Timer ที่ยังทำงานอยู่, หรือ Observable/Subscription ที่ไม่ถูก Unsubscribe ทำให้ Reference ยังคงอยู่ใน Memory แม้ Component จะถูกลบไปแล้ว วิธีแก้คือใช้ Lifecycle Hook (เช่น componentWillUnmount ใน React หรือ onDestroy ใน Angular) เพื่อ Cleanup ตัวเลือก A, C, D ไม่ใช่สาเหตุหลักของ Memory Leak

ข้อสอบอื่นในวิชาความรู้เกี่ยวกับการพัฒนาโปรแกรมระบบงานในลักษณะ Web Application

ดูข้อสอบวิชานี้ทั้งหมด →