我打算構建多個計時器。我開始通過使用下面的代碼構建一個簡單的時鐘。Javascript時鐘/計時器中斷
問題是,時鐘會運行幾分鐘,網站會中斷,我認爲這是由於內存不足。
當我console.log輸出。看起來該命令每秒運行一次以上。 console.log行的計數器會說2,4,8,16,32,64等等,這些數字很快就會翻倍成一些天文數字。並且該網站在幾分鐘內將無法響應。
這是代碼效率問題嗎? 或者使用java腳本來每秒更新一些東西是不可行的。 ,因爲我打算在同一頁面上製作多個定時器。 (大約5-10)
我在谷歌瀏覽器上試過這個。
updateTime();
function updateTime() {
var d = new Date;
var hours = d.getHours();
var mins = d.getMinutes();
var secs = d.getSeconds();
var ampm = 'AM';
if (hours >= 12) {
ampm = 'PM';
}
if (hours > 12) {
hours = hours - 12;
}
formatted_time = hours + ':' + mins + ':' + secs + ampm;
//console.log(formatted_time);
$("#currenttime").html(formatted_time);
window.setInterval(updateTime, 1000);
}
你設定的時間間隔,這意味着它會反覆做,你犯了一個新的間隔每一個循環,過不了多久你有上百萬間隔的所有正在運行的,即改變的setTimeout。 –
可能的重複[爲什麼是setInterval使無限循環](http://stackoverflow.com/questions/37200897/why-is-setinterval-making-infinite-loops) –