DOMHighResTimeStamp

Тип DOMHighResTimeStamp является double и используется для хранения значения времени в миллисекундах. Этот тип может быть использован для описания конкретной точки во времени или временного промежутка (разницы во времени между двумя конкретными временными точками).

Время, в миллисекундах, скорее всего будет точным до 5 µs (микросекунд) и дробную долю числа будут составлять доли миллисекунды. Тем не менее, если браузер (в силу, к примеру, аппаратных или программных ограничений) не может предоставить значение времени с точностью до 5 µs, он может представить значение как время в миллисекундах с точностью до миллисекунды. Также обратите внимание на секцию внизу об уменьшении точности времени, которое можно указать в настройках браузера дабы избежать атак по времени и сличения информации с помощью цифровых отпечатков.

Кроме того, если устройство или операционная система на который работает user agent не имеет часов, точных до микросекунд, они могут иметь точность до миллисекунды.

Уменьшенная точность времени

Для предоставления защиты от атак по времени и сличения информации с помощью цифровых отпечатков, точность отметок времени может округляться в зависимости от настроек браузера. В Firefox свойство privacy.reduceTimerPrecision включено по умолчанию и имеет значение 20 µs в Firefox 59; в 60 оно уже имеет значение 2ms.

js
// уменьшенная точность времени (2ms) в Firefox 60
event.timeStamp;
// 1519211809934
// 1519211810362
// 1519211811670
// ...

// уменьшенная точность времени с включённым `privacy.resistFingerprinting`
event.timeStamp;
// 1519129853500
// 1519129858900
// 1519129864400
// ...

В Firefox, вы также можете включить privacy.resistFingerprinting, точность будет 100ms или значением privacy.resistFingerprinting.reduceTimerPrecision.microseconds, в зависимости от того, какое из них больше.

Свойства

У этого типа нет свойств. Это число двойной точности с плавающей запятой.

Значение

Значение DOMHighResTimeStamp является числом двойной точности с плавающей запятой, которое описывает количество миллисекунд (с точностью до 5 микросекунд, если устройство это поддерживает), прошедших между двумя точками во времени. Начальное время может быть либо определённым временем, определённым скриптом или приложением, или временем возникновения.

Время возникновения

Время возникновения — стандартное время, которое считается началом существования текущего документа. Оно считается следующим образом:

  • Если global object скрипта - Window, время возникновения определяется следующим образом:

    • Если текущий Document - первый загруженный в Window, время возникновения - время, когда был создан контекст браузера.
    • Если во время выгрузки предыдущего документа, который был загружен в окне, пользователю было показано диалоговое окно, в котором он должен был подтвердить покинет он предыдущую страницу или нет, время возникновения это время когда пользователь подтвердить что он желает перейти на новую страницу.
    • Если ни один из вышеописанных пунктов не определяет время возникновения, тогда время возникновения это время, когда переход, который результировал в создании текущего Document имел место.
  • Если глобальный объект скрипта — WorkerGlobalScope (то есть скрипт, запущенный как Web Worker), время возникновения - момент создания Worker-а.

  • Во всех остальных случаях время возникновения - undefined.

Методы

У этого типа нет методов.

Спецификации

Specification
High Resolution Time
# dom-domhighrestimestamp

Совместимость с браузерами

Смотрите также