„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Beherrschen von Webanimationen: CSS vs. nicht optimierte und optimierte JavaScript-Leistung

Beherrschen von Webanimationen: CSS vs. nicht optimierte und optimierte JavaScript-Leistung

Veröffentlicht am 30.08.2024
Durchsuche:203

Webanimationen können das Benutzererlebnis erheblich verbessern, können sich jedoch auch auf die Website-Leistung auswirken, wenn sie nicht sorgfältig implementiert werden. In diesem Artikel vergleiche ich drei verschiedene Ansätze zum Animieren eines Kreiselements, dessen Größe variiert. Ich verwende CSS, nicht optimiertes JavaScript und optimiertes JavaScript und zeige Ihnen, wie Sie deren Leistung mit Chrome DevTools messen können.

Einführung in Webanimationen

Animationen sind ein wichtiger Bestandteil des modernen Webdesigns. Sie können mit verschiedenen Methoden implementiert werden, am häufigsten mit reinem CSS oder JavaScript. Allerdings ist nicht jede Methode gleich gut. Um dies zu demonstrieren, habe ich beschlossen, drei verschiedene Ansätze zu testen:

  • Mit CSS erstellte Animationen.
  • Nicht optimierte Animationen mit JavaScript.
  • Optimierte Animationen mit JavaScript mit requestAnimationFrame.

Einrichten des Projekts

Das Projekt ist auf GitHub verfügbar. Sie können es ganz einfach herunterladen und ausprobieren.

Git-Klon https://github.com/TomasDevs/animation-performance-test.git
CD-Animationsleistungstest

Sobald Sie es heruntergeladen haben, überprüfen Sie die Ordner css-animation, js-animation-optimized und js-animation-unoptimized.

Probieren Sie das Projekt auf GitHub aus

Leistung messen

Um die Leistung zu messen, habe ich das Leistungsfenster von Chrome DevTools verwendet. Jede Animation wurde 10 Sekunden lang ausgeführt.

Leistungsergebnisse und Analyse

CSS-Animation

Mastering Web Animations: CSS vs Unoptimized and Optimized JavaScript PerformanceQuelle: Erstellt von TomasDevs (2024)

  • Gesamtblockierungszeit: 390 ms

Hinweise:
CSS-Animationen erzielen tendenziell eine bessere Leistung, da sie auf die native Rendering-Engine des Browsers ausgelagert werden, insbesondere wenn mit Eigenschaften wie Transformation oder Deckkraft gearbeitet wird. Diese Animation ist äußerst effizient und hat nur minimale Auswirkungen auf die Skripterstellungs- und Renderzeiten.


Optimierte JavaScript-Animation

Mastering Web Animations: CSS vs Unoptimized and Optimized JavaScript PerformanceQuelle: Erstellt von TomasDevs (2024)

  • Gesamtblockierungszeit: 400 ms

Hinweise:
Die optimierte JS-Version verwendet requestAnimationFrame und eine glatte Sinuswellenfunktion, um die Animation zu verwalten. Es erfordert zwar mehr Skriptzeit als CSS-Animationen, läuft aber dennoch recht effizient und hält die Render- und Malzeiten niedrig.


Nicht optimierte JavaScript-Animation

Mastering Web Animations: CSS vs Unoptimized and Optimized JavaScript PerformanceQuelle: Erstellt von TomasDevs (2024)

  • Gesamtblockierungszeit: 440 ms

Hinweise:
Die nicht optimierte JS-Version verwendet eine einfache Schleife ohne Berücksichtigung des Zeitablaufs. Dies führt aufgrund ineffizienter Berechnungen für jeden Frame der Animation zu viel längeren Skript-, Rendering- und Malzeiten.


Abschluss

  • CSS-Animationen sind insgesamt am effizientesten für einfache Animationen. Sie profitieren von der Hardwarebeschleunigung durch den Browser und reduzieren die Belastung des Hauptthreads.
  • Optimierte JavaScript-Animationen folgen knapp dahinter. Wenn Sie eine dynamischere Kontrolle über Animationen benötigen, ist die Optimierung mit requestAnimationFrame unerlässlich, um eine reibungslose Leistung sicherzustellen.
  • Nicht optimierte JavaScript-Animationen schneiden am schlechtesten ab, da sie die Rendering-Engine des Browsers aufgrund ineffizienter Berechnungen unnötig belasten.

Beteiligen Sie sich an der Diskussion

Welche Erfahrungen haben Sie mit der Optimierung von Webanimationen gemacht? Haben Sie weitere Tipps und Tricks zur Leistungssteigerung? Lass es mich unten in den Kommentaren wissen!

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/tomasdevs/mastering-web-animations-css-vs-unoptimized-and-optimized-javascript-performance-4knn?1 Bei Verstößen wenden Sie sich bitte an Study_golang@163 .com, um es zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3