Die meisten modernen Browser senden automatisch einen hochpräzisen Zeitstempel als Argument in jede requestAnimation-Callback-Schleife: Ссылка
Sie ziehen einfach den letzten Zeitstempel vom aktuellen Zeitstempel ab, um die verstrichene Zeit seit dem letzten Durchlauf der Schleife zu erhalten.
Hier ist Beispielcode und eine Demo:
Für einige Browser, die Performance
nicht unterstützen, müssen Sie Date.now()
anstelle von currentTime
innerhalb der Schleife verwenden, da von diesen Browsern kein Zeitstempel automatisch in die Schleife gesendet wird.
hat "dt" die beste Genauigkeit?
Nein. Laut den Dokumenten ,
Der Callback-Methode wird ein einzelnes Argument übergeben, ein DOMHighResTimeStamp . Dies gibt die aktuelle Zeit an, zu der Callbacks, die von
requestAnimationFrame
in die Warteschlange gestellt wurden, ausgelöst werden
sollten Sie das lieber verwenden, um eine hohe Genauigkeit zu erhalten.
%Vor%( jsfiddle-Demo )
Tags und Links javascript canvas requestanimationframe time frame-rate