Как можно сбросить одну переменную в Javascript и воспроизвести предупреждение через определенное время? - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь запрограммировать небольшую игру, которая должна перезагрузиться через 5 секунд, и сказать людям, что они слишком медленные.Более того, переменные точки должны быть сброшены, чтобы они могли начинаться с новых.С

 setInterval(function(){
                window.location.href = "javascript:window.top.location.reload(true)";
            }, 5000);    

весь сайт загружен, и люди должны начинать с нуля.То же самое происходит, когда они нажимают команду + R.

Я попытался сбросить переменные точки и показать предупреждение, что они были слишком медленными.

 setInterval(function(){
                alert("You were too slow!");
                 points = 0; 
            }, 5000);

Если я использую этот код, то оповещение продолжает появляться очень быстро.Как мне все сбросить и получать оповещение каждые 5 секунд?

1 Ответ

0 голосов
/ 03 октября 2018

В зависимости от браузера внутренний таймер продолжит работать, пока модальное изображение отображается как в Firefox, или зависает как в Chrome.Так что в Firefox, если модальное время остается открытым дольше 5 секунд, то следующее будет немедленно показано после закрытия текущего.

В редких случаях вы действительно хотите использовать setInterval, даже еслиу вас есть события, которые происходят через регулярные промежутки времени, которые вы большую часть времени должны использовать вместо setTimeout.

var roundTimeoutTimer;

function tookToLong() {
   alert("You were too slow!");
   points = 0; 
}

function startTask() {
   roundTimeoutTimer = setTimeout(tookToLong, 5000)
}

function finishedTask() {
   clearTimeout(roundTimeoutTimer)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...