我正在研究一個簡單的HTML和Javascript項目;我的計時器有問題。每隔幾秒只在setInterval函數內執行一次代碼
我正在計算兩個Date()
對象之間的秒數;每2秒鐘,我想獲得一個新的隨機數。我有一個每100毫秒運行一次的setInterval
,當我超過2秒標記時,if
語句中的代碼應該運行。
所以我的問題是:
我怎樣才能確保代碼在if
聲明的是,每運行100毫秒內setInterval()
每執行2秒只有一次?
下面是代碼:
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 2013-02-20 21:20:10
爲什麼不乾脆放棄2000而不是100的setInterval的持續時間? – DiMono 2013-02-20 21:21:39
因爲我想爲它增加更多的東西,運行速度更快,然後2000毫秒和endTime不會刷新足夠快。 – samy 2013-02-20 21:22:40