Я планирую построить несколько таймеров. Я начал с создания простых часов, используя следующий код.Javascript clock/timer breaks
проблема, часы будут работать в течение нескольких минут, и сайт сломается, я думаю, что это из-за нехватки памяти.
когда я консоль.log выход. Кажется, что команда запускается более одного раза в секунду. Счетчик для линии console.log будет сканировать 2, 4, 8, 16, 32, 64 и т. Д. И т. Д., Быстро удваивая в некоторые астрономические числа. и через несколько минут сайт станет неактивным.
Это проблема эффективности с кодом? Или просто невозможно использовать Java-скрипт, чтобы обновлять что-то каждую секунду. , потому что я планирую сделать несколько таймеров на одной странице. (возможно, около 5-10)
Я пробовал это на Google Chrome.
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) –