ภาพเคลื่อนไหวที่ไม่ได้ทำการ Composite อาจปรากฏไม่ราบรื่น (ไม่ราบรื่น) ในโทรศัพท์ระดับโลว์เอนด์หรือเมื่อมีการทำงานที่หนักหน่วงในเทรดหลัก ภาพเคลื่อนไหวที่แจ่มใสอาจทำให้หน้าเว็บ Cumulative Layout Shift (CLS) เพิ่มขึ้น การลด CLS จะช่วยเพิ่มคะแนนประสิทธิภาพของ Lighthouse
ที่มา
อัลกอริทึมของเบราว์เซอร์สำหรับการแปลง HTML, CSS และ JavaScript เป็นพิกเซลนั้นเรียกรวมกันว่าไปป์ไลน์การแสดงผล
![ไปป์ไลน์การแสดงผลประกอบด้วยขั้นตอนตามลำดับต่อไปนี้: JavaScript, สไตล์, Layout, Paint, Composite](https://developer.chrome.com/static/docs/lighthouse/performance/non-composited-animations/image/the-rendering-pipeline-co-ab82078a2fca6.jpg?authuser=5&hl=th)
หากไม่เข้าใจว่าแต่ละขั้นของไปป์ไลน์การแสดงผลหมายถึงอะไร ก็ไม่เป็นไร สิ่งสำคัญที่ต้องทำความเข้าใจตอนนี้คือ ในแต่ละขั้นตอนของไปป์ไลน์การแสดงผล เบราว์เซอร์จะใช้ผลลัพธ์ของการดำเนินการก่อนหน้าในการสร้างข้อมูลใหม่ เช่น หากโค้ดทำบางอย่างที่ทริกเกอร์เลย์เอาต์ ขั้นตอนของสีและองค์ประกอบต้องทำงานอีกครั้ง ภาพเคลื่อนไหวที่ไม่ได้ทำการ Composite คือภาพเคลื่อนไหวที่ทริกเกอร์ขั้นตอนก่อนหน้านี้หนึ่งในไปป์ไลน์การแสดงผล (สไตล์ เลย์เอาต์ หรือ Paint) แอนิเมชันที่ไม่ได้ทำการคอมโพสิตจะทำงานได้แย่ลงเนื่องจากจะบังคับให้เบราว์เซอร์ทำงานได้มากขึ้น
ลองดูแหล่งข้อมูลต่อไปนี้เพื่อดูข้อมูลเชิงลึกเกี่ยวกับไปป์ไลน์การแสดงผล
- เจาะลึกเว็บเบราว์เซอร์สมัยใหม่ (ตอนที่ 3)
- ลดความซับซ้อนของสีและลดพื้นที่ที่ทาสี
- ใช้คุณสมบัติเฉพาะเครื่องมือจัดวางองค์ประกอบและจัดการจำนวนเลเยอร์
วิธีที่ Lighthouse ตรวจจับภาพเคลื่อนไหวที่ไม่ได้ทำการคอมโพสิต
เมื่อคอมไพล์ภาพเคลื่อนไหวไม่ได้ Chrome จะรายงานสาเหตุที่ดำเนินการไม่สำเร็จให้กับการติดตามเครื่องมือสำหรับนักพัฒนาเว็บ ซึ่งเป็นข้อมูลที่ Lighthouse อ่าน Lighthouse แสดงรายการโหนด DOM ที่มีภาพเคลื่อนไหวที่ไม่ได้ทำการคอมไพล์ พร้อมกับเหตุผลที่ล้มเหลวสำหรับภาพเคลื่อนไหวแต่ละรายการ
วิธีตรวจสอบว่าภาพเคลื่อนไหวมีการผสานไว้
ดูใช้พร็อพเพอร์ตี้คอมโพเนนต์เท่านั้นและจัดการจำนวนเลเยอร์และภาพเคลื่อนไหวประสิทธิภาพสูง