Spec-Zone.ru › Web APIs

Событие: свойство timeStamp

Базовая реализация Широко доступна

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.

  • Узнать больше
  • Показать полную совместимость
  • Отправить отзыв

Примечание: Эта функция доступна в Потоках Web Workers.

Свойство timeStamp только для чтения интерфейса Event возвращает время (в миллисекундах), в которое было создано событие.

Значение

Это значение представляет собой количество миллисекунд, прошедших с начала отсчёта времени до момента создания события. Если глобальный объект является Window, то отсчёт времени начинается в момент нажатия пользователем на ссылку или в момент запуска скрипта, инициализирующего загрузку документа. В потоке worker отсчёт времени начинается в момент создания потока.

Значение является значением типа DOMHighResTimeStamp с точностью до 5 микросекунд (0,005 мс), но точность снижается для предотвращения отслеживания.

Пример

HTML

<p>
  Focus this iframe and press any key to get the current timestamp for the
  keypress event.
</p>
<p>timeStamp: <span id="time">-</span></p>

JavaScript

function getTime(event) {
  const time = document.getElementById("time");
  time.firstChild.nodeValue = event.timeStamp;
}
document.body.addEventListener("keypress", getTime);

Результат

Снижение точности времени

Для защиты от атак на основе времени и отслеживания, точность значения event.timeStamp может быть округлено в зависимости от настроек браузера. В Firefox, настройка privacy.reduceTimerPrecision включена по умолчанию и имеет значение по умолчанию 2 мс. Также можно включить privacy.resistFingerprinting, в этом случае точность будет 100 мс или значение privacy.resistFingerprinting.reduceTimerPrecision.microseconds, что больше.

Например, при снижении точности времени, результат event.timeStamp всегда будет кратным 2 или кратным 100 (или privacy.resistFingerprinting.reduceTimerPrecision.microseconds) при включении privacy.resistFingerprinting.

// reduced time precision (2ms) in Firefox 60
event.timeStamp;
// Might be:
// 9934
// 10362
// 11670
// …

// reduced time precision with `privacy.resistFingerprinting` enabled
event.timeStamp;
// Might be:
// 53500
// 58900
// 64400
// …

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

Спецификация
DOM
# ref-for-dom-event-timestamp①

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
timeStamp
1Начиная с Chrome 49, Firefox 54 и Opera 36, это свойство возвращает DOMHighResTimeStamp вместо DOMTimeStamp.
12
1.5Начиная с Chrome 49, Firefox 54 и Opera 36, это свойство возвращает DOMHighResTimeStamp вместо DOMTimeStamp.
≤12.1Начиная с Chrome 49, Firefox 54 и Opera 36, это свойство возвращает DOMHighResTimeStamp вместо DOMTimeStamp.
1
18Начиная с Chrome Android 49, Firefox 54 и Opera 36, это свойство возвращает DOMHighResTimeStamp вместо DOMTimeStamp.
4Начиная с Chrome 49, Firefox для Android 54 и Opera 36, это свойство возвращает DOMHighResTimeStamp вместо DOMTimeStamp.
≤12.1Начиная с Chrome 49, Firefox 54 и Opera 36, это свойство возвращает DOMHighResTimeStamp вместо DOMTimeStamp.
1
1.0Начиная с Samsung Internet 5.0, Firefox 54 и Opera 36, это свойство возвращает DOMHighResTimeStamp вместо DOMTimeStamp.
1Начиная с версии 49, это свойство возвращает DOMHighResTimeStamp вместо DOMTimeStamp.

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Event/timeStamp

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API