duboloms
@duboloms
Люблю есть дубы с кетчупом. Веб-разработчик.

Как посчитать сколько прошло миллисекунд в JS?

Доброго дня.
До этого момента, я думал что это очень простой вопрос и сделать этот миллисекундомер - просто:
let timerCount = 0;

const timer = setInterval(() => {
  timerCount++;
  console.log(timerCount);
}, 1);


Но потом, я заметил, что таймер тикает слишком медленно
Я решил запустить секундомер: https://sekundomer.net/ , сравнил свой таймер с их, понял что мой нааамного медленее

Как правильно рассчитать миллисекунды?
  • Вопрос задан
  • 1157 просмотров
Решения вопроса 2
IonDen
@IonDen
JavaScript developer. IonDen.com
setInterval нельзя использовать для этой задачи. Его точность не соответствует, он нужен для другого и работает по другому.

Если нужна точность - то нужно использовать Date. Пример

Алгоритм примерно такой:
1. При первом нажатии на кнопку, вы запоминаете дату
2. При втором нажатии на кнопку, вы запоминаете новую дату
3. Теперь достаточно преобразовать обе даты в число, и вычесть из более новой даты, более старую.

const btn = document.querySelector('[data-timer-button]');
const result = document.querySelector('[data-timer]');
let timerStart, timerEnd;
let isRunning = false;

btn.addEventListener('click', () => {
  if (isRunning) {
    isRunning = false;
    timerEnd = new Date().valueOf();
    result.innerHTML = `${timerEnd - timerStart} ms`;
  } else {
    isRunning = true;
    timerStart = new Date().valueOf();
    result.innerHTML = 'running...';
  }
})
Ответ написан
Комментировать
в консоле не проверяй, комп сгорит
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы