• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Aktueller DOMTimestamp?

KtmnjjpfjsFvzG

New member
Hi,

ich verzweifel hier gerade etwas.

Ich nutze requestAnimationFrame(), und dort wird ja als Parameter die aktuelle Zeit übergeben, also z.B.

requestAnimationFrame(function(time){
alert("Timestamp: " + time);
});

ich brauche aber für meine Berechnungen eine Startzeit! Diese soll noch vor dem ersten Frame bestimmt werden.

Wie komme ich da ran? Das Date-Objekt scheint diese Zeit nicht zurückgeben zu können.

Es scheint sich um die Anzahl Millisekunden seit Öffnen der Seite als Fließkommazahl zu handeln (Wird zurückgesetzt beim refresh).
 
Auf welchen Zeitpunkt soll sich denn die Startzeit beziehen? Da kannst du doch Date.now() auslesen und dann das im ersten Frame mit dem Parameter vergleichen...
 
Nein, eben nicht, weil Date.now() ein normaler Timestamp ist und der Parameter ein DOMTimestamp, also Date.now() sich auf 1970 bezieht und der Parameter auf den Ladezeitpunkt der Seite...
 
Äh... aber du kannst doch Date.now() mit dem DOMTimestamp vergleichen und dir dann den Offset speichern... ich verstehe nicht, was genau dein Problem ist.
 
Sorry für die späte Antwort, aber um Date.now() mit dem DOMTimestamp zu vergleichen, müsste ich ja bereits einen DOMTimestamp haben!
Außerdem ist Date.now() nicht so genau wie ein DOMTimestamp...

Das Problem ist, dass es anscheinend AUSSCHLIESSLICH per Parameter bei requestAnimationFrame übergeben wird, also muss ich immer mindestens ein Frame auf den Wert warten...
 
developer.mozilla.org
The DOMTimeStamp type represents an absolute or relative amount of milliseconds

und ist damit ganauso genau wie Date.now().

Hier Zeitliche Steuerung für skriptbasierte Animationen ("requestAnimationFrame") hab ich einen interssanten Artikel in deutsch incl. Beispiele gefunden. Soweit ich das auf die Schnelle überblicke, ist es genau so wie es kkapsner bereits schrieb.

LG jspit

Edit:
In dem Artikel hab ich noch einen interessanten Timer gefunden (vermute mal genau was KtmnjjpfjsFvzG sucht) : window.performance.now();
Liefert eine hochgenaue Zeit in ms, aber als float (mit µs als nachkomma je nach Browser).
Onlinedemo hier
Um den laufenden Timestamp zu bekommen auf RUN klicken.

Edit2:
Die Objektliste von window.performance.timing ist auch ein Blick wert. Liefert div. Zeiten zum Seitenaufbau.
 
Zuletzt bearbeitet:
Zurück
Oben