La propriété timeStamp
de l'interface Event
indique l'heure à laquelle un événement donné s'est produit.
Dans les versions de Chrome antérieures à la version 49, cette valeur timeStamp
était représentée par un DOMTimeStamp
, qui était un nombre entier de millisecondes depuis l'époque du système, un peu comme la valeur renvoyée par Date.now()
.
À partir de Chrome 49, timeStamp
est une valeur DOMHighResTimeStamp
. Cette valeur reste un nombre de millisecondes, mais avec une résolution en microsecondes, ce qui signifie qu'elle inclut un composant décimal. De plus, au lieu d'être relative à l'époque, la valeur est relative à PerformanceTiming.navigationStart
, c'est-à-dire à l'heure à laquelle l'utilisateur a accédé à la page.
Vous pouvez constater les avantages d'une précision de code temporel supplémentaire dans les exemples suivants:
Considérations multinavigateur et anciennes
Si vous disposez d'un code existant qui compare les valeurs Event.timeStamp
de deux événements, vous ne devriez pas avoir à ajuster votre code en raison du passage à DOMHighResTimeStamp
. De plus, sur les navigateurs compatibles avec DOMHighResTimeStamp
, votre code existant bénéficiera d'une précision accrue au niveau des microsecondes, ainsi que du fait que DOMHighResTimeStamp
est garanti pour augmenter de manière monotone, que l'horloge système change ou non au milieu de l'exécution de votre page Web.
Si, au lieu de comparer deux valeurs Event.timeStamp
, votre code doit déterminer depuis combien de temps un événement s'est produit, la nouvelle valeur DOMHighResTimeStamp
peut être comparée directement à performance.now()
.
Si vous devez transformer Event.timeStamp
en nombre absolu de millisecondes depuis l'époque du système, vous pouvez obtenir cette valeur en ajoutant un DOMHighResTimeStamp
à performance.timing.navigationStart
.
Dans les deux cas, DOMTimeStamp
et DOMHighResTimeStamp
se comportent différemment, mais vous pouvez simplifier votre code multinavigateur à l'aide de cette fonction de conversion, fournie par Majid Valipour. Il prend un objet Event
comme paramètre et renvoie une valeur semblable à DOMHighResTimeStamp
, prête à être comparée à performance.now()
ou ajoutée à performance.timing.navigationStart
.