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 DOMTimeStamp
, ce qui correspondait à un nombre entier de millisecondes écoulées depuis l'epoch du système, un peu comme la valeur renvoyée par Date.now()
.
À partir de Chrome 49, timeStamp
est une valeur DOMHighResTimeStamp
. Cette valeur est toujours exprimée en millisecondes, mais avec une résolution en microsecondes, ce qui signifie que la valeur inclura un composant décimal. De plus, au lieu que la valeur soit relative à l'epoch, la valeur est relative à PerformanceTiming.navigationStart
, c'est-à-dire l'heure à laquelle l'utilisateur a accédé à la page.
Les avantages d'une précision accrue des horodatages sont illustrés dans les exemples suivants:
Considérations relatives aux anciens navigateurs et aux navigateurs
Si vous disposez d'un code qui compare les valeurs Event.timeStamp
de deux événements, vous ne devriez pas avoir à l'ajuster en raison du passage à DOMHighResTimeStamp
. De plus, sur les navigateurs compatibles avec DOMHighResTimeStamp
, votre code existant bénéficie d'une précision accrue à la microseconde. De plus, l'augmentation de DOMHighResTimeStamp
est garantie de façon 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 un nombre absolu de millisecondes écoulées depuis l'epoch du système, vous pouvez obtenir cette valeur en ajoutant un DOMHighResTimeStamp
à performance.timing.navigationStart
.
Dans ces deux cas, DOMTimeStamp
et DOMHighResTimeStamp
se comportent différemment, mais vous pouvez simplifier votre code internavigateur à l'aide de cette fonction de conversion, offerte par Majid Valipour. Elle utilise un objet Event
comme paramètre et renvoie une valeur de type DOMHighResTimeStamp
, prête à être comparée à performance.now()
ou ajoutée à performance.timing.navigationStart
.