Я создаю приложение для проверки времени реакции. Я пытаюсь выполнить sh это с помощью чистого javascript для повышения производительности. Что должен делать мой код:
- запустить 5-секундный таймер (
routineTimer.reset(5)
) - подождать 3 секунды
- показать круг (это то, что пользователь должен ответить)
- подождите еще 2 секунды, прежде чем скрыть круг и перейти к другому коду
html
<svg width="200" height="200">
<circle id="circle1" cx="100" cy="70" r="60" stroke="#1c87c9" stroke-width="4" fill="lightgray"/>
</svg>
javascript
var routineTimer = new CountdownTimer();
$("#button3").click(function() {
$("#circle1").hide();
routineTimer.reset(5);
while (routineTimer.getTime() > 2) {
continue;
}
$("#circle1").show();
while (routineTimer.getTime() > 0) {
continue;
}
$("#circle1").hide();
});
Проблема с этим кодом в том, что l oop кажется блокирующим, т.е. строка $("#circle1").show();
не запускается до конца всего блока. Однако из-за линии $("#circle1").hide();
круг никогда не появляется.
Я бы не хотел использовать setTimeout
, который работает без каких-либо проблем, но может быть неточным для приложения времени реакции.
Любая помощь будет оценена. Спасибо!