Событие: свойство 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. |
|
© 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