Краткое описание
Метод Performance.now()
возращает временную метку DOMHighResTimeStamp
, измеряемую в миллисекундах, с точностью до одной тысячной миллисекунды.
Значение, представленное типом DOMHighResTimeStamp
, изменяется в зависимости от контекста. Стоит иметь ввиду следующее:
- в разделяемых или выделенных потоках выполнения, началом эпохи считается момент начала работы потока.
- вне потоков выполнения, или в выделенных потоках, созданных в контексте
Window
, началом эпохи считается значение свойстваPerformanceTiming.navigationStart
. - в выделенных потоках выполнения, созданных из другого потока, началом эпохи устанавливается начало эпохи этого самого потока.
Синтаксис
t = performance.now();
Пример
var t0 = performance.now(); doSomething(); var t1 = performance.now(); console.log("Call to doSomething took " + (t1 - t0) + " milliseconds.")
В отличие от других временны́х типов данных, доступных в JavaScript (таких как Date.now
), метки времени, возвращенные из Performance.now(),
не ограничены кратностью в одну миллисекунду, а представляют значение времени как число с плавающей запятой, с точностью до микросекунд.
Также, в противоположность Date.now
, значение, возвращаемое из Performance.now(), всегда возрастает с постоянной скоростью, независимо от системного времени
(которое может быть установленно вручную или изменено программами наподобие NTP).
Спецификации
Спецификация | Статус | Комментарий |
---|---|---|
High Resolution Time Level 2 Определение 'Performance.now()' в этой спецификации. |
Редакторский черновик | Более строгие определения типов и интерфейсов. |
High Resolution Time Определение 'Performance.now()' в этой спецификации. |
Рекомендация | Начальное определение |
Совместимость с браузерами
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | 20.0 webkit 24.0 [1] |
15.0 (15.0) | 10.0 | 15.0 | 8.0 |
on Web workers | 33 | 34.0 (34.0) | ? | ? | ? |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | 4.0 | 25.0 | 15.0 (15.0) | 10.0 | Нет | Нет |
on Web workers | ? | ? | 34.0 (34.0) | ? | ? | ? |
[1] Версии Chrome от 20 до 33 под Windows, на момент написания этого документа, возвращает performance.now()
с точностью только до миллисекунд.
Смотрите также
- When milliseconds are not enough: performance.now() от HTML5 Rocks.