我打算构建多个计时器。我开始通过使用下面的代码构建一个简单的时钟。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) –