performance.now()
Краткое описание
Метод performance.now()
возвращает временную метку DOMHighResTimeStamp
, измеряемую в миллисекундах, с точностью до одной тысячной миллисекунды.
Значение, представленное типом DOMHighResTimeStamp
, изменяется в зависимости от контекста. Стоит иметь ввиду следующее:
- в разделяемых или выделенных потоках выполнения, началом эпохи считается момент начала работы потока.
- вне потоков выполнения, или в выделенных потоках, созданных в контексте
Window
, началом эпохи считается значение свойстваPerformanceTiming.navigationStart
(en-US). - в выделенных потоках выполнения, созданных из другого потока, началом эпохи устанавливается начало эпохи этого самого потока.
Синтаксис
t = performance.now();
Пример
js
var t0 = performance.now();
doSomething();
var t1 = performance.now();
console.log("Call to doSomething took " + (t1 - t0) + " milliseconds.");
В отличие от других временны́х типов данных, доступных в JavaScript (таких как Date.now
(en-US)), метки времени, возвращённые из performance.now(),
не ограничены кратностью в одну миллисекунду, а представляют значение времени как число с плавающей запятой, с точностью до микросекунд.
Также, в противоположность Date.now
, значение, возвращаемое из performance.now()
, всегда возрастает с постоянной скоростью, независимо от системного времени (которое может быть установлено вручную или изменено программами наподобие NTP).
Спецификации
Specification |
---|
High Resolution Time # dom-performance-now |
Совместимость с браузерами
BCD tables only load in the browser
Смотрите также
- When milliseconds are not enough: performance.now() от HTML5 Rocks.