หลีกเลี่ยงปัญหาแอนิเมชั่นที่ไม่คอมโพสิต

เผยแพร่แล้ว: 2024-01-10
ติดตาม @Cloudways

คุณเคยคลิกบนเว็บไซต์เพียงเพื่อจะพบว่ามันกระตุกและกระตุกเมื่อคุณเลื่อนดูหรือไม่?

น่าหงุดหงิดใช่ไหม?

จะเป็นอย่างไรถ้าเราบอกคุณถึงความลับเบื้องหลังอุปสรรคเหล่านั้นอยู่ในสิ่งที่เรียกว่าแอนิเมชั่นแบบไม่คอมโพสิตล่ะ?

ภาพเคลื่อนไหวเหล่านี้เป็นภาพเคลื่อนไหวที่เบราว์เซอร์ไม่ได้รับการประมวลผลอย่างมีประสิทธิภาพ ทำให้โปรเซสเซอร์หลักของคอมพิวเตอร์มีภาระหนักขึ้น และนำไปสู่ปัญหาด้านประสิทธิภาพการทำงาน

แต่ไม่ต้องกังวล มีวิธีแก้ไขปัญหานี้อยู่

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

เอาล่ะ.

    • แอนิเมชั่นแบบไม่คอมโพสิตคืออะไร?
    • เหตุใดการหลีกเลี่ยงแอนิเมชั่นที่ไม่คอมโพสิตจึงจำเป็นต่อประสิทธิภาพของเว็บ
    • แอนิเมชั่นที่ไม่คอมโพสิตส่งผลต่อประสิทธิภาพของเพจและการแสดงผลของเบราว์เซอร์อย่างไร
    • จะตรวจจับแอนิเมชั่นที่ไม่คอมโพสิตได้อย่างไร
    • เบราว์เซอร์จัดการกับภาพเคลื่อนไหวได้อย่างไร?
    • สาเหตุของแอนิเมชั่นที่ไม่คอมโพสิต
    • วิธีหลีกเลี่ยงภาพเคลื่อนไหวที่ไม่คอมโพสิต
    • Cloudways Hosting สามารถเสริมภาพเคลื่อนไหวที่ปรับให้เหมาะสมที่สุดของคุณได้อย่างไร

แอนิเมชั่นแบบไม่คอมโพสิตคืออะไร?

แอนิเมชั่นแบบไม่คอมโพสิตคือเว็บแอนิเมชั่นประเภทหนึ่งที่ประมวลผลโดย CPU เป็นหลัก แทนที่จะเป็น GPU (หน่วยประมวลผลกราฟิก)

วิธีการประมวลผลนี้มักจะนำไปสู่การเรนเดอร์ที่มีประสิทธิภาพน้อยลง อาจทำให้เกิดปัญหาด้านประสิทธิภาพ เช่น อัตราเฟรมที่ช้าลง และความล่าช้าของอินเทอร์เฟซผู้ใช้ โดยเฉพาะอย่างยิ่งบนหน้าเว็บที่ซับซ้อนหรืออุปกรณ์ที่มีประสิทธิภาพน้อยกว่า

Non-composited animation

การตัดทอน Cumulative Layout Shift (CLS) จะช่วยเพิ่มประสิทธิภาพคะแนน Lighthouse Performance ของคุณ

ต้องการเพิ่มประสิทธิภาพแอนิเมชั่นของเว็บไซต์ของคุณหรือไม่?

ปรับปรุงภาพเคลื่อนไหวของไซต์ของคุณด้วย Cloudways Managed Hosting สแต็กที่ได้รับการปรับปรุงของเราซึ่งมีผู้ให้บริการคลาวด์ชั้นนำ เช่น DigitalOcean และ Google Cloud ช่วยให้มั่นใจได้ว่าภาพเคลื่อนไหวจะราบรื่นและไม่ซับซ้อน

ลองตอนนี้

เหตุใดการหลีกเลี่ยงแอนิเมชั่นที่ไม่คอมโพสิตจึงจำเป็นต่อประสิทธิภาพของเว็บ

การหลีกเลี่ยงภาพเคลื่อนไหวที่ไม่คอมโพสิตถือเป็นสิ่งสำคัญสำหรับประสิทธิภาพของเว็บด้วยเหตุผลหลายประการ ประการแรก แอนิเมชั่นที่ไม่คอมโพสิตซึ่งประมวลผลโดย CPU อาจมีประสิทธิภาพน้อยกว่าและช้ากว่าแอนิเมชั่นที่ประมวลผลด้วย GPU

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

ประการที่สอง แอนิเมชั่นที่ใช้ CPU มากอาจทำให้ทรัพยากรของระบบตึงเครียด โดยเฉพาะอย่างยิ่งบนอุปกรณ์ที่มีประสิทธิภาพน้อยกว่า เช่น สมาร์ทโฟนหรือคอมพิวเตอร์รุ่นเก่า ความเครียดนี้ไม่เพียงแต่ทำให้แอนิเมชั่นช้าลงเท่านั้น แต่ยังรวมถึงกระบวนการอื่นๆ ที่ทำงานบนเว็บเพจด้วย

เป็นผลให้ประสิทธิภาพโดยรวมของเว็บไซต์อาจถูกบุกรุกได้ ไม่เพียงแค่นี้ ประสิทธิภาพของเว็บไซต์ที่ถูกบุกรุกยังส่งผลเสียต่อความสำเร็จด้านการตลาดดิจิทัลอีกด้วย ตรวจสอบบล็อกนี้ “ ผลกระทบของความเร็วเว็บไซต์ต่อความสำเร็จด้านการตลาดดิจิทัล ” เพื่อทราบวิธีการ

หมายเหตุ: ต่อไปนี้เป็น เคล็ดลับง่ายๆ บางประการในการเร่งความเร็วไซต์ WordPress ของคุณเพื่อประสิทธิภาพที่ดีขึ้น

แอนิเมชั่นที่ไม่คอมโพสิตส่งผลต่อประสิทธิภาพของเพจและการแสดงผลของเบราว์เซอร์อย่างไร

ภาพเคลื่อนไหวที่ไม่คอมโพสิตอาจส่งผลกระทบอย่างมากต่อประสิทธิภาพของเพจและการแสดงผลของเบราว์เซอร์ ในด้านประสิทธิภาพ พวกเขามักจะทำให้เว็บไซต์ช้าลง สิ่งนี้เกิดขึ้นเนื่องจากโปรเซสเซอร์หลักของคอมพิวเตอร์ (CPU) ทำงานหนักเกินไป และพยายามจัดการกับภาพเคลื่อนไหวที่ซับซ้อนนอกเหนือจากงานอื่นๆ

ส่งผลให้เว็บไซต์ตอบสนองต่อการโต้ตอบของผู้ใช้ เช่น การคลิกหรือการเลื่อนน้อยลง โดยเฉพาะอย่างยิ่งจะสังเกตเห็นได้ชัดเจนบนอุปกรณ์ที่มีการประมวลผลน้อย เช่น โทรศัพท์มือถือ

เกี่ยวกับการเรนเดอร์เบราว์เซอร์ ภาพเคลื่อนไหวที่ไม่คอมโพสิตมักจะทำให้การเคลื่อนไหวบนหน้าจอขาด ๆ หาย ๆ และไม่สม่ำเสมอ เนื่องจาก CPU มีประสิทธิภาพน้อยกว่าในการวาดและจัดการภาพเคลื่อนไหวเหล่านี้มากกว่า GPU ภาพเคลื่อนไหวจึงอาจดูกระตุกและไม่ราบรื่น

สิ่งนี้ส่งผลต่อรูปลักษณ์ที่น่าดึงดูดและอาจทำให้เว็บไซต์ช้าลงเนื่องจากเบราว์เซอร์พยายามดิ้นรนเพื่อให้ทันกับการแสดงภาพเคลื่อนไหวที่มีความต้องการสูงเหล่านี้ นอกจากนี้ ภาระของ CPU ยังส่งผลให้เวลาในการโหลดหน้าเว็บนานขึ้น เนื่องจากต้องใช้เวลาในการประมวลผลและแสดงองค์ประกอบภาพเคลื่อนไหวมากขึ้น

เพิ่มประสิทธิภาพภาพเคลื่อนไหวของเว็บไซต์ของคุณด้วย WordPress Hosting โดย Cloudways!

เครื่องมือแคชขั้นสูงของเรา เช่น Memcached, Varnish และ Redis ผสมผสานกับความน่าเชื่อถือของผู้ให้บริการคลาวด์ชั้นนำ ช่วยให้มั่นใจว่าภาพเคลื่อนไหวของคุณลื่นไหลและน่าดึงดูด

ลองตอนนี้

จะตรวจจับแอนิเมชั่นที่ไม่คอมโพสิตได้อย่างไร

การตรวจจับภาพเคลื่อนไหวที่ไม่คอมโพสิตสามารถทำได้โดยใช้เครื่องมือวิเคราะห์ประสิทธิภาพ เช่น Google PageSpeed ​​Insights และ GTmetrix นี่คือ เครื่องมือทดสอบความเร็ว WordPress ที่ดีที่สุด 10 อันดับ ที่คุณสามารถใช้เพื่อตรวจจับภาพเคลื่อนไหวที่ไม่คอมโพสิต

เครื่องมือเหล่านี้จะวิเคราะห์แง่มุมต่างๆ ของประสิทธิภาพเว็บไซต์ของคุณ รวมถึงวิธีการแสดงภาพเคลื่อนไหว

คุณสามารถใช้มันได้ดังต่อไปนี้:

ข้อมูลเชิงลึกของ Google PageSpeed

  • เยี่ยมชม เว็บไซต์ PageSpeed ​​Insights ป้อน URL หน้าเว็บของคุณ และคลิก 'วิเคราะห์' เครื่องมือนี้จะประเมินหน้าเว็บของคุณทั้งในด้านประสิทธิภาพบนมือถือและเดสก์ท็อป

Analyze

  • หลังจากการวิเคราะห์ PageSpeed ​​Insights จะให้คะแนนและรายงานโดยละเอียด ดูในส่วน "การวินิจฉัย" ของรายงาน
  • มองหาคำเตือนที่ระบุว่า “หลีกเลี่ยงแอนิเมชั่นที่ไม่คอมโพสิต” สิ่งนี้บ่งชี้ว่าเพจของคุณมีภาพเคลื่อนไหวที่สามารถปรับให้เหมาะสมเพื่อประสิทธิภาพที่ดีขึ้น

Look for a warning

จีที เมตริกซ์

  • ไปที่เว็บไซต์ GTmetrix ป้อน URL เว็บไซต์ของคุณ และเริ่มการทดสอบ GTmetrix นำเสนอการวิเคราะห์ที่ครอบคลุมเกี่ยวกับประสิทธิภาพการโหลดเว็บไซต์ของคุณ

GT Metrix

  • เมื่อการวิเคราะห์เสร็จสิ้น คุณจะได้รับรายงานโดยละเอียด GTmetrix มุ่งเน้นไปที่เมตริกประสิทธิภาพทั่วไปมากกว่า ดังนั้นจึงอาจไม่ได้ชี้ให้เห็นภาพเคลื่อนไหวที่ไม่คอมโพสิตโดยตรง เช่น PageSpeed ​​Insights
  • ค้นหาเวลาในการเรนเดอร์และเมตริกโหลด CPU เช่น 'เวลาบล็อกทั้งหมด' หรือ 'เวลาในการโต้ตอบ'
  • แม้ว่า GTmetrix อาจไม่กล่าวถึงภาพเคลื่อนไหวที่ไม่คอมโพสิตอย่างชัดเจน แต่ค่าที่สูงในพื้นที่เหล่านี้อาจบ่งบอกถึงกระบวนการเรนเดอร์ที่ไม่มีประสิทธิภาพ ซึ่งอาจเนื่องมาจากภาพเคลื่อนไหวที่ไม่คอมโพสิต

GT Metrix

นอกจากนี้คุณยังสามารถทำการ ทดสอบความเครียด เพื่อพิจารณาประสิทธิภาพของเว็บไซต์ของคุณได้อีกด้วย

เบราว์เซอร์จัดการกับภาพเคลื่อนไหวได้อย่างไร?

เมื่อพูดถึงการจัดการภาพเคลื่อนไหว เบราว์เซอร์จะใช้สองส่วนหลักของคอมพิวเตอร์: CPU (หน่วยประมวลผลกลาง) และ GPU (หน่วยประมวลผลกราฟิก) แอนิเมชั่นธรรมดา เช่น การเปลี่ยนสีหรือข้อความ โดยปกติแล้ว CPU จะจัดการ

อย่างไรก็ตาม สำหรับภาพเคลื่อนไหวที่ซับซ้อนมากขึ้น โดยเฉพาะอย่างยิ่งที่เกี่ยวข้องกับการเคลื่อนไหวหรือการเปลี่ยนแปลง เบราว์เซอร์จะพยายามใช้ GPU GPU เหมาะกับงานเหล่านี้มากกว่าเพราะได้รับการออกแบบให้รองรับกราฟิกและสามารถสร้างภาพเคลื่อนไหวที่ราบรื่นและลื่นไหล

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

สาเหตุของแอนิเมชั่นที่ไม่คอมโพสิต

เพื่อก้าวไปสู่การแก้ไขปัญหาแอนิเมชันที่ไม่คอมโพสิต จำเป็นอย่างยิ่งที่จะต้องทำความเข้าใจว่าอะไรเป็นสาเหตุของแอนิเมชันดังกล่าว สาเหตุทั่วไปบางประการมีดังนี้:

การสร้างภาพเคลื่อนไหวคุณสมบัติที่ไม่ใช่คอมโพสิต

การสร้างภาพเคลื่อนไหวคุณสมบัติที่ไม่ใช่คอมโพสิตมักจะนำไปสู่ภาพเคลื่อนไหวที่ไม่คอมโพสิต สิ่งนี้จะเกิดขึ้นเมื่อมีการใช้คุณสมบัติเช่น 'ความกว้าง' 'ความสูง' หรือ 'ระยะขอบ' ซึ่งต้องการให้เบราว์เซอร์คำนวณและวาดใหม่จำนวนมากในแอนิเมชั่น

คุณสมบัติเหล่านี้ไม่ได้รับการจัดการอย่างมีประสิทธิภาพโดย GPU ดังนั้นจึงทำให้ CPU มีภาระมากขึ้น ทำให้ภาพเคลื่อนไหวมีความราบรื่นน้อยลง

การใช้ JavaScript เพื่อสร้างภาพเคลื่อนไหว

การใช้ JavaScript เพื่อสร้างภาพเคลื่อนไหวอาจทำให้เกิดปัญหาได้เช่นกัน แอนิเมชันที่ใช้ JavaScript โดยเฉพาะอย่างยิ่งเมื่อไม่ได้รับการปรับให้เหมาะสม อาจต้องการ CPU จำนวนมาก แม้ว่า JavaScript จะให้การควบคุมภาพเคลื่อนไหวได้มากกว่า แต่ก็อาจนำไปสู่ปัญหาด้านประสิทธิภาพได้หากภาพเคลื่อนไหวมีความซับซ้อนหรือไม่ได้เข้ารหัสอย่างมีประสิทธิภาพ

พื้นที่ทาสีที่ซับซ้อน

พื้นที่ทาสีที่ซับซ้อนในแอนิเมชั่นอาจเป็นอีกสาเหตุหนึ่งได้ เมื่อคุณมีพื้นที่ขนาดใหญ่ที่ต้องทาสีใหม่บ่อยครั้งในระหว่างแอนิเมชั่น จะทำให้เกิดความเครียดอย่างมากต่อระบบ โดยเฉพาะอย่างยิ่งสำหรับกราฟิกที่ซับซ้อนหรือรูปภาพความละเอียดสูงที่เปลี่ยนแปลงอย่างรวดเร็ว

กราฟิกหรือสื่อที่ไม่มีประสิทธิภาพ

การใช้กราฟิกหรือสื่อที่ไม่มีประสิทธิภาพในแอนิเมชั่นเป็นอีกสาเหตุหนึ่งที่พบบ่อย รูปภาพ วิดีโอ หรือกราฟิกที่มีความละเอียดสูงซึ่งไม่ได้รับการปรับให้เหมาะกับการใช้งานเว็บอาจทำให้ภาพเคลื่อนไหวช้าลงได้ เบราว์เซอร์ต้องดิ้นรนมากขึ้นในการแสดงองค์ประกอบหนักๆ เหล่านี้ โดยเฉพาะอย่างยิ่งหากองค์ประกอบเหล่านั้นเป็นส่วนหนึ่งของลำดับภาพเคลื่อนไหว

การใช้เงาและฟิลเตอร์มากเกินไป

สุดท้ายนี้ การใช้เงาและตัวกรองมากเกินไปใน CSS อาจทำให้เกิดภาพเคลื่อนไหวที่ไม่คอมโพสิตได้ เอฟเฟ็กต์เหล่านี้แม้ว่าจะดูน่าดึงดูด แต่ก็ต้องใช้ทรัพยากรมาก การใช้องค์ประกอบเหล่านี้กับองค์ประกอบที่เคลื่อนไหวอาจส่งผลกระทบอย่างมากต่อประสิทธิภาพ เนื่องจากเบราว์เซอร์จำเป็นต้องประมวลผลเพิ่มเติมจำนวนมาก

หมายเหตุ: เรียนรู้ สาเหตุอื่นๆ ของเว็บไซต์ที่ช้า

วิธีหลีกเลี่ยงภาพเคลื่อนไหวที่ไม่คอมโพสิต

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

ต้องการปรับปรุงความเร็วไซต์และ UX ของคุณหรือไม่? เปลี่ยนไปใช้ Cloudways วันนี้!

ยกระดับประสิทธิภาพแอนิเมชั่นของคุณด้วยโฮสติ้งบน SSD ของ Cloudways และแคชขั้นสูงในตัว ทำให้มั่นใจได้ถึงเวลาในการโหลดที่รวดเร็วเป็นพิเศษ และแอนิเมชั่นที่ราบรื่นและไม่ติดขัดบนเว็บไซต์ WordPress ของคุณ

ลองตอนนี้

ต่อไปนี้เป็นแนวทางทีละขั้นตอนในการแก้ไขปัญหานี้ ก่อนที่จะดำเนินการแก้ไข ฉันจะแสดงให้คุณเห็นว่าคะแนนเว็บไซต์มีลักษณะอย่างไรเมื่อมีข้อผิดพลาดนี้:

website score with this error

  • เมื่อมุ่งสู่การวินิจฉัย เราพบข้อผิดพลาด "หลีกเลี่ยงภาพเคลื่อนไหวที่ไม่คอมโพสิต"

Non-composited animation

ต่อไปนี้เป็นขั้นตอนที่คุณต้องปฏิบัติตามเพื่อแก้ไขปัญหานี้

  • ไปที่แดชบอร์ด WordPress ของคุณ
  • เลือก ลักษณะที่ปรากฏ > ปรับแต่ง
  • คุณอาจพบโค้ด CSS ใต้ส่วน "CSS เพิ่มเติม" มีโอกาสสูงที่โค้ดนี้จะไม่ใช้ภาพเคลื่อนไหว CSS ที่ปรับให้เหมาะสม ซึ่งทำให้เกิดข้อผิดพลาดนี้

 CSS code

  • หากคุณเป็นนักพัฒนา คุณจะรู้อยู่แล้วว่าโค้ดนี้ไม่ได้รับการปรับให้เหมาะสม และนี่คือการเปลี่ยนแปลงที่จะสร้างสิ่งมหัศจรรย์ให้กับเว็บไซต์ของคุณ

การเปลี่ยนแปลงที่ 1: การเพิ่มคุณสมบัติ Will-Change

การเปลี่ยนแปลงนี้เป็นการแจ้งเบราว์เซอร์เกี่ยวกับการเปลี่ยนแปลงแอนิเมชั่นที่กำลังจะเกิดขึ้น ซึ่งสามารถช่วยเพิ่มประสิทธิภาพการเรนเดอร์ได้

 .my-นิเมชั่น {

    ความกว้าง: 100px;

    ความสูง: 100px;

    สีพื้นหลัง: สีแดง;

    ตำแหน่ง: แน่นอน;

    ความตั้งใจที่จะเปลี่ยนแปลง: การเปลี่ยนแปลง, ความทึบ; /* เพิ่มบรรทัด */

    แอนิเมชั่น: complexMove 5s เชิงเส้นไม่มีที่สิ้นสุด;

}

/* คีย์เฟรมที่เหลือยังคงไม่เปลี่ยนแปลง */

การเปลี่ยนแปลงที่ 2: การลดความซับซ้อนของแอนิเมชั่น

ในที่นี้ การเปลี่ยนแปลงขนาดที่ 50% ได้รับการแก้ไขจากขนาด (2) เป็นขนาด (1.5) ซึ่งจะช่วยลดความซับซ้อนและความเข้มของภาพเคลื่อนไหว

 .my-นิเมชั่น {

    /* ... คุณสมบัติอื่นๆ ... */

    ความตั้งใจที่จะเปลี่ยนแปลง: การเปลี่ยนแปลง, ความทึบ; /* สมมติว่าการเปลี่ยนแปลง 1 ถูกเก็บไว้ */

    แอนิเมชั่น: complexMove 5s เชิงเส้นไม่มีที่สิ้นสุด;

}

@keyframes ซับซ้อนMove {

    /* ... คีย์เฟรม 0% และ 100% ... */

    50% {

        แปลงร่าง: แปล X (300%) หมุน (180 องศา) สเกล (1.5); /* แก้ไขบรรทัด */

        ความทึบ: 0.5;

    }

    /* ... คีย์เฟรม 100% ... */

}

นี่คือลักษณะของโค้ดสุดท้ายของคุณ:

 .my-นิเมชั่น {

    ความกว้าง: 100px;

    ความสูง: 100px;

    สีพื้นหลัง: สีแดง;

    ตำแหน่ง: แน่นอน;

    ความตั้งใจที่จะเปลี่ยนแปลง: การเปลี่ยนแปลง, ความทึบ; /* แจ้งเบราว์เซอร์ถึงการเปลี่ยนแปลงที่กำลังจะเกิดขึ้น */

    แอนิเมชั่น: complexMove 5s เชิงเส้นไม่มีที่สิ้นสุด;

}

@keyframes ซับซ้อนMove {

    0%, 100% {

        แปลงร่าง: แปล X (0) หมุน (0) สเกล (1);

        ความทึบ: 1;

    }

    50% {

        แปลงร่าง: แปล X (300%) หมุน (180 องศา) สเกล (1.5); /* ปรับมาตราส่วนเพื่อลดความซับซ้อน */

        ความทึบ: 0.5;

    }

}
  • เพียงลบโค้ดก่อนหน้าแล้วคัดลอกและวางโค้ดใหม่นี้ลงใน CSS เพิ่มเติมของคุณ การดำเนินการนี้จะไม่เปลี่ยนภาพเคลื่อนไหว แต่จะลบข้อผิดพลาดนี้อย่างแน่นอน

diagnostics

  • คุณสามารถเห็นข้อผิดพลาดไม่มีอยู่อีกต่อไป
  • และข้อดีคือ ด้วยโค้ดที่ได้รับการปรับปรุงแล้ว คุณสามารถเพิ่มคะแนนประสิทธิภาพได้ เราเห็นตั้งแต่ตอนต้นของส่วนนี้ว่าคะแนนผลงานอยู่ที่ 77
  • นี่คือคะแนนประสิทธิภาพที่ดีขึ้น:

 improved performance score

ดังนั้นเคล็ดลับทั่วไปบางประการที่คุณต้องจำไว้เพื่อแก้ไขข้อผิดพลาดนี้คือ:

เคล็ดลับที่ 1: เพิ่มประสิทธิภาพภาพเคลื่อนไหว CSS

แทนที่จะสร้างภาพเคลื่อนไหวคุณสมบัติ เช่น ความสูง ความกว้าง หรือด้านซ้าย ซึ่งอาจต้องใช้ทรัพยากรมาก ให้ใช้งาน
แปลง
และ
ความทึบ คุณสมบัติเหล่านี้เร่งด้วย GPU และเบราว์เซอร์สามารถจัดการได้อย่างมีประสิทธิภาพมากขึ้น

นี่คือโค้ดตัวอย่างก่อนและหลังการปรับให้เหมาะสม:

ก่อนการเพิ่มประสิทธิภาพ:

 .animate-ซ้าย {

    ตำแหน่ง: ญาติ;

    แอนิเมชั่น: moveLeft 2s เชิงเส้นไม่มีที่สิ้นสุด;

}

@keyframes ย้ายซ้าย {

    จาก { ซ้าย: 0; }

    ถึง { ซ้าย: 100px; }

}

หลังจากการเพิ่มประสิทธิภาพ:

 .animate-ซ้าย {

    ตำแหน่ง: ญาติ;

    แอนิเมชั่น: moveLeft 2s เชิงเส้นไม่มีที่สิ้นสุด;

}

@keyframes ย้ายซ้าย {

    จาก { แปลง: แปล X (0); }

    ถึง { แปลง: TranslateX(100px); }

}

เคล็ดลับ 2: การใช้ประโยชน์จากพลังของคุณสมบัติ 'Will-Change' ของ CSS

ใช้คุณสมบัติ will-change เพื่อแจ้งเบราว์เซอร์เกี่ยวกับองค์ประกอบที่จะเปลี่ยนแปลงในอนาคตอันใกล้นี้ ซึ่งจะทำให้เบราว์เซอร์สามารถจัดเตรียมและเพิ่มประสิทธิภาพสำหรับการเปลี่ยนแปลงได้

ต่อไปนี้เป็นวิธีใช้คุณสมบัติ will-change

  • แทรกบรรทัดต่อไปนี้ในโค้ดของคุณ
 ความตั้งใจที่จะเปลี่ยนแปลง: การเปลี่ยนแปลง, ความทึบ; /* เพิ่มบรรทัด */

เคล็ดลับ 3: การถ่ายโอนภาพเคลื่อนไหวไปยัง GPU

การถ่ายโอนภาพเคลื่อนไหวไปยัง GPU (หน่วยประมวลผลกราฟิก) เป็นเทคนิคในการเพิ่มประสิทธิภาพภาพเคลื่อนไหวบนเว็บ ทำให้ภาพเคลื่อนไหวราบรื่นขึ้นและกินพื้นที่ CPU (หน่วยประมวลผลกลาง) น้อยลง

วิธีการนี้มีประสิทธิภาพโดยเฉพาะอย่างยิ่งในการแก้ไขปัญหาแอนิเมชั่นที่ไม่คอมโพสิต เนื่องจากเป็นการใช้ประโยชน์จากความสามารถของ GPU ในการจัดการงานกราฟิกได้อย่างมีประสิทธิภาพมากขึ้น

คุณสามารถถ่ายโอนภาพเคลื่อนไหวไปยัง GPU ได้โดยใช้คุณสมบัติ Transform และ Opacity สำหรับภาพเคลื่อนไหว เนื่องจากคุณสมบัติเหล่านี้มีประสิทธิภาพมากกว่าคุณสมบัติภาพเคลื่อนไหว เช่น ความกว้าง ความสูง ด้านบน หรือด้านซ้าย

คุณสามารถใช้คุณสมบัติการแปลงและความทึบแทนซ้ายและขวาได้ นี่คือตัวอย่าง:

รหัสที่ไม่ได้เพิ่มประสิทธิภาพ:

 @keyframes ย้ายซ้าย {

    จาก { ซ้าย: 0; }

    ถึง { ซ้าย: 100px; }

}

รหัสที่ปรับให้เหมาะสม:

 @keyframes ย้ายซ้าย {

    จาก { แปลง: แปล X (0); }

    ถึง { แปลง: TranslateX(100px); }

}

เคล็ดลับ 4: การใช้ไลบรารีและเครื่องมือที่มีประสิทธิภาพ

การรวมไลบรารีที่มีประสิทธิภาพ เช่น GreenSock Animation Platform (GSAP) หรือ Velocity.js จะมีประสิทธิภาพสูงในการแก้ไขข้อผิดพลาดของแอนิเมชันที่ไม่ได้ประกอบ

ไลบรารีเหล่านี้ได้รับการปรับให้เหมาะสมเพื่อประสิทธิภาพ โดยนำเสนอภาพเคลื่อนไหวที่ราบรื่นและมีประสิทธิภาพมากกว่า CSS หรือ JavaScript มาตรฐาน

หากต้องการรวมไลบรารี GSAP ให้ทำตามขั้นตอนเหล่านี้

  • ค้นหาลิงก์ CDN สำหรับ GSAP
  • เปิดไฟล์ HTML ที่คุณต้องการใช้ GSAP
  • คุณต้องวางลิงก์ CDN ไว้ในแท็ก <script> แท็กนี้ควรวางไว้ใกล้กับส่วนท้ายของส่วน <body> ของคุณ
 <!DOCTYPE html>

<html>

<หัว>

    <title>หน้าเว็บของคุณ</title>

    <!-- องค์ประกอบส่วนหัวอื่นๆ -->

</หัว>

<ร่างกาย>

    <!-- เนื้อหา HTML ของคุณอยู่ที่นี่ -->

    <!-- สคริปต์ GSAP CDN ที่ส่วนท้ายของเนื้อหา -->

    <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.5.1/gsap.min.js"></script>

</ร่างกาย>

</html>

Cloudways Hosting สามารถเสริมภาพเคลื่อนไหวที่ปรับให้เหมาะสมที่สุดของคุณได้อย่างไร


Cloudways Hosting ปรับปรุงเว็บไซต์ด้วยภาพเคลื่อนไหวที่ปรับให้เหมาะสมโดยนำเสนอความเร็วที่รวดเร็วและสถานะการออนไลน์สูงจากผู้ให้บริการคลาวด์ชั้นนำเช่น DigitalOcean, AWS และ Google Cloud โซลูชันแคชขั้นสูง รวมถึง Memcached, Varnish และ Redis ช่วยให้มั่นใจได้ว่าสามารถโหลดภาพเคลื่อนไหวได้อย่างรวดเร็ว สแต็กที่ได้รับการปรับปรุงประสิทธิภาพของแพลตฟอร์ม ร่วมกับ Enterprise CDN ของ Cloudflare ช่วยเพิ่มประสิทธิภาพแอนิเมชันเพิ่มเติม โดยเฉพาะอย่างยิ่งในช่วงที่มีปริมาณการใช้งานสูงสุด เมื่อรวมกับคุณสมบัติความปลอดภัยที่แข็งแกร่ง Cloudways มอบสภาพแวดล้อมโฮสติ้งในอุดมคติและคุ้มค่าสำหรับเว็บไซต์ที่เต็มไปด้วยแอนิเมชั่น

สรุป

และนั่นมัน เราได้สำรวจกลยุทธ์หลักในการหลีกเลี่ยงแอนิเมชั่นที่ไม่คอมโพสิต โดยมุ่งเน้นไปที่แนวทางปฏิบัติที่ดีที่สุดในแอนิเมชั่นบนเว็บ

นอกจากนี้เรายังได้พูดคุยถึงสาเหตุของการเกิดภาพเคลื่อนไหวแบบไม่คอมโพสิต และผลกระทบต่อประสิทธิภาพของเว็บและการแสดงผลของเบราว์เซอร์

หากคุณมีคำถามใดๆ เกี่ยวกับหัวข้อนี้ โปรดติดต่อเรา

แอนิเมชั่นแบบคอมโพสิตคืออะไร?

แอนิเมชันแบบรวมเป็นกระบวนการแอนิเมชั่นที่ราบรื่นและมีประสิทธิภาพ โดยที่หน่วยประมวลผลกราฟิก (GPU) ของเบราว์เซอร์จะจัดการการเรนเดอร์ ลดภาระในหน่วยประมวลผลกลาง (CPU) และปรับปรุงประสิทธิภาพของเว็บไซต์

คุณจะหลีกเลี่ยงสีของแอนิเมชั่นที่ไม่คอมโพสิตได้อย่างไร

เพื่อหลีกเลี่ยงภาพเคลื่อนไหวที่ไม่คอมโพสิตสำหรับการเปลี่ยนสี ให้ใช้คุณสมบัติ CSS เช่น สีและสีพื้นหลังอย่างรอบคอบ และพิจารณารวมกับการแปลงหรือความทึบเพื่อเร่งความเร็ว GPU

ฉันจะแก้ไขการหลีกเลี่ยงภาพเคลื่อนไหวที่ไม่คอมโพสิตใน WordPress ได้อย่างไร

ใน WordPress แก้ไขแอนิเมชั่นที่ไม่คอมโพสิตโดยปรับแต่ง CSS และ JavaScript ของคุณให้เหมาะสม โดยใช้ไลบรารีแอนิเมชั่นที่มีประสิทธิภาพ และอาจใช้ประโยชน์จากปลั๊กอินที่ออกแบบมาเพื่อเพิ่มประสิทธิภาพการทำงาน มุ่งเน้นที่การใช้คุณสมบัติ CSS ที่เร่งด้วย GPU เช่น การแปลงและความทึบ