@agromov91

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

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

https://jsfiddle.net/bu5zq04s/

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

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


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

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

Войти через центр авторизации
Похожие вопросы
Stream Labs Москва
До 150 000 ₽
Myagi Минск
от 3 000 до 4 000 $
Salesbeat Москва
от 150 000 до 250 000 ₽
17 февр. 2020, в 19:40
500 руб./за проект
17 февр. 2020, в 19:36
5000 руб./за проект
17 февр. 2020, в 19:27
200 руб./в час