HTML과 Javascript 인 간단한 프로젝트에서 작업하고 있습니다. 타이머에 문제가 있습니다.몇 초에 한 번만 setInterval 함수 내에서 코드를 실행하십시오.
두 개의 Date()
개체 사이의 초를 계산 중입니다. 매 2 초마다 새로운 난수를 얻고 싶습니다. 나는 setInterval
을 매 100ms마다 실행하며, 2 초를 지나면 if
문 안의 코드가 실행되어야한다.
그래서 제 질문은 :
어떻게 코드가 매 100 밀리 실행하는 setInterval()
내부에있는 if
문에서 한 번만 이초 당 실행할 수 있는지 확인 할 수 있습니까?
var startTime = new Date();
var endTime = new Date();
var randomNumber = 0;
var gameTimer = setInterval(function(){
//calculate seconds;
var secondsPassed = Math.round((endTime - startTime)/1000);
if(modulo(secondsPassed,2) == 0){
//when the "gate" is open this keep executing every 100 mili seconds.
//but i want it to execute only once every 2 seconds.
randomNumber = Math.floor(Math.random()*lanes.length);
$(lanes[randomNumber]).append(box);
}
endTime = new Date();
}, 100);
var modulo = function (n, m) {
var remain = n % m;
return Math.floor(remain >= 0 ? remain : remain + m);
};
은 ... – Neal
이유는 단지 2000보다는 100의 setInterval을 기간을 제공하지? – DiMono
becuse 나는 더 빨리 실행 한 다음 2000 밀리와 endTime이 충분히 빨리 재생되지는 않을 것이라며 더 많은 것을 추가하고 싶다. – samy