molily: Unterschiedliche Scriptgeschwindigkeit in Browsern

Beitrag lesen

Hallo,

Du sprichst von Intervallen, deshalb rate ich mal, dass du setInterval für deine Animation benutzt. Besser wäre requestAnimationFrame zu nutzen, dann kennt der Browser deine Intention und kann seinerseits Optimierungen vornehmen.

Wichtig ist hier zu wissen, dass requestAnimationFrame eine Framerate von 60 anpeilt. Es wird also maximal 60-mal pro Sekunde neu gezeichnet. Ein Frame dauert also 16.666… Millisekunden. In dieser Zeit muss die Funktion den Animations-Schritt vollziehen, also z.B. Daten berechnen und DOM-Änderungen vornehmen *und* der Browser muss die Änderungen zeichnen. Die Step-Funktion muss soweit optimiert sein, dass noch genug Zeit ist, die Styles/das Layout neu zu berechnen und die Elemente zu zeichnen. Diese Optimierung muss man im Grunde selbst vornehmen.

Ansonsten erreicht man nicht 60fps und einige Frames werden kurzerhand ausgelassen, was die Gesamtlaufzeit der Animation m.W. verändert. Daher der Hinweis von unknown, Bibliotheken zu verwenden, die eine Auto-Korrektur verwenden.

Grüße,
Mathias