@agromov91

Правильный ли таймер на JS?

Только изучаю javascript, прошел третью часть learn.javascript.ru
На досуге решил для себя набросать ради опыта простой таймер.
Примеры не смотрел как делают другие, постарался опираться лишь на свои знания.

https://jsfiddle.net/bu5zq04s/

Более менее правильный подход для начинающего? Или все через одно место?))
  • Вопрос задан
  • 323 просмотра
Решения вопроса 3
Stalker_RED
@Stalker_RED
Кроме обработчиков есть еще один довольно распространенный косяк
setInterval(foo, 1000) НЕ будет срабатывать раз в секунду.
Он будет срабатывать не раньше чем через секунду, но позже - запросто. В зависимости от загруженности системы, анимация, и всякого такого. а еще пользователь может переключиться на ждругую вкладку, а на неактивной все замедлится. В результате такой таймер будет отставать.
Лучше на старте запоминать время, и каждом тике вычислять разницу между запомненным и текущим..
Ответ написан
Комментировать
yarkov
@yarkov Куратор тега JavaScript
Помог ответ? Отметь решением.
Навешивать обработчики внутри других обработчиков, ну такое себе решение. В остальном норм, ничего криминального ))
Ответ написан
Kozack
@Kozack Куратор тега JavaScript
Thinking about a11y
У вас там серёзный баг:

  • Каждый раз при клике на "Старт" создаётся ещё один обработчик клика по "СТОП" и клика по "СБРОС"
  • Каждый раз кликнув в "СТОП" создаётся ещё один обработчик клика по "СТАРТ"


Добавьте логирование и посмотрите сколько раз какие обработчики запускаются. Тут нужно либо инициализацию обработчиков перенести выше, чтобы они навешивались только один раз. Любо их постоянно добавлять, но не забывать удалять.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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