A propriedade timeStamp
da interface Event
indica o momento em que um evento ocorreu.
Nas versões do Chrome anteriores à 49, esse valor timeStamp
era
representado como um DOMTimeStamp
,
que era um número inteiro de milissegundos desde a
época do sistema,
semelhante ao valor retornado por
Date.now()
.
A partir do Chrome 49, timeStamp
é um
valor DOMHighResTimeStamp
. Esse valor ainda é um número de milissegundos, mas com resolução de
microssegundos, o que significa que o valor vai incluir um componente decimal. Além disso,
em vez de o valor ser relativo à época, ele é relativo ao
PerformanceTiming.navigationStart
,
ou seja, o momento em que o usuário navegou até a página.
Confira abaixo os benefícios de uma precisão maior do carimbo de data/hora:
Considerações sobre navegadores diferentes e legados
Se você tiver um código que compara valores de Event.timeStamp
de
dois eventos, não será necessário ajustar o código devido à mudança para
DOMHighResTimeStamp
. Além disso, em navegadores que oferecem suporte a
DOMHighResTimeStamp
, o código atual se beneficia da
maior precisão em microssegundos, além do fato de que o
DOMHighResTimeStamp
tem garantia de
aumento monotonicamente,
independente de o relógio do sistema mudar no meio da execução da
página da Web.
Se, em vez de comparar dois valores de Event.timeStamp
, o código
precisa determinar há quanto tempo um evento ocorreu, o novo
valor de DOMHighResTimeStamp
pode ser comparado diretamente com
performance.now()
.
Se você precisar transformar Event.timeStamp
em um número absoluto
de milissegundos desde a época do sistema, adicione um
DOMHighResTimeStamp
a performance.timing.navigationStart
.
Em ambos os casos, DOMTimeStamp
e DOMHighResTimeStamp
se comportam de maneira diferente, mas você pode simplificar seu código entre navegadores usando essa
função de conversão,
por cortesia de Majid Valipour. Ela recebe um
objeto Event
como parâmetro e retorna um
valor semelhante a DOMHighResTimeStamp
, pronto para ser comparado a
performance.now()
ou adicionado a
performance.timing.navigationStart
.