Das Attribut timeStamp
der Event
-Oberfläche gibt den Zeitpunkt an, zu dem ein bestimmtes Ereignis stattgefunden hat.
In Chrome-Versionen vor 49 wurde dieser timeStamp
-Wert als DOMTimeStamp
dargestellt. Er war eine ganze Anzahl von Millisekunden seit der Systemepoche, ähnlich wie der von Date.now()
zurückgegebene Wert.
Ab Chrome 49 ist timeStamp
ein DOMHighResTimeStamp
-Wert. Dieser Wert beträgt immer noch Millisekunden, hat jedoch eine Mikrosekundenauflösung, d. h. der Wert enthält eine Dezimalkomponente. Außerdem bezieht sich der Wert nicht auf die Epoche, sondern auf PerformanceTiming.navigationStart
, also auf die Zeit, zu der der Nutzer die Seite aufgerufen hat.
Die Vorteile der zusätzlichen Zeitstempelgenauigkeit werden in diesen Beispielen deutlich:
Browserübergreifende und Legacy-Überlegungen
Wenn Sie vorhandenen Code haben, mit dem Event.timeStamp
-Werte aus zwei Ereignissen verglichen werden, sollten Sie Ihren Code aufgrund der Verschiebung zu DOMHighResTimeStamp
nicht anpassen müssen. In Browsern, die DOMHighResTimeStamp
unterstützen, profitiert Ihr vorhandener Code außerdem von der erhöhten Genauigkeit im Mikrosekundenbereich und von der Tatsache, dass DOMHighResTimeStamp
garantiert monoton zunimmt, unabhängig davon, ob sich die Systemuhr mitten auf der Ausführung Ihrer Webseite ändert.
Wenn mit Ihrem Code nicht zwei Event.timeStamp
-Werte verglichen werden sollen, muss mit Ihrem Code ermittelt werden, wie lange ein Ereignis stattgefunden hat, kann der neue DOMHighResTimeStamp
-Wert direkt mit performance.now()
verglichen werden.
Wenn Sie Event.timeStamp
in eine absolute Zahl von Millisekunden seit der Systemzeitspanne umwandeln müssen, können Sie diesen Wert erhalten, indem Sie eine DOMHighResTimeStamp
zu performance.timing.navigationStart
hinzufügen.
In beiden Fällen verhalten sich DOMTimeStamp
und DOMHighResTimeStamp
unterschiedlich. Sie können aber mithilfe dieser Conversion-Funktion mithilfe von Majid Valipour Ihren browserübergreifenden Code vereinfachen. Dabei wird ein Event
-Objekt als Parameter verwendet und ein DOMHighResTimeStamp
-ähnlicher Wert zurückgegeben, der mit performance.now()
verglichen oder zu performance.timing.navigationStart
hinzugefügt werden kann.