setInterval
не будет работать каждую миллисекунду.Существует минимально возможный интервал, который больше этого.
Если вы хотите, чтобы что-то запускалось через девять секунд, вы должны использовать setTimeout()
в течение 9 секунд.Кроме того, ваш код не сбрасывает base.time обратно на ноль, поэтому в любом случае он будет совпадать только с 9000.
Если вы хотите, чтобы он запускался каждые 9 секунд, тогда вы можете использовать setInterval(handler, 9000)
или использовать setTimeout(handler, 9000)
и затем установите следующий setTimeout
в функции-обработчике.
Это будет выполнять move()
каждые девять секунд:
var intervalTimer = setInterval(function(){
move();
}, 9000);
Вот полезная статья по теме: http://www.adequatelygood.com/2010/2/Minimum-Timer-Intervals-in-JavaScript.
Чтобы сбросить время до 9 секунд при нажатии кнопки, используйте этот код:
var intervalTimer;
function startTimer() {
intervalTimer = setInterval(function(){
move();
}, 9000);
}
function handleClick() {
clearInterval(intervalTimer); // stop currently running interval
startTimer();
}
startTimer();
Смотрите его в действии здесь: http://jsfiddle.net/jfriend00/sF2by/.