Второй параметр в функции setInterval предназначен для задержки выполнения в миллисекундах. и как ожидается, 1000 миллисекунд вызовут функцию каждую секунду. но вот странная вещь, что я не очень понимаю. Во втором интервале я установил параметр задержки в 1 миллисекунду и поместил внутри инкрементного номера функции и условия для проверки каждого прошедшего 1000 номера. Я ожидал, что он будет вести себя точно так же, как таймер интервала секунд. но я не уверен, как я надеялся.Определение секунд в миллисекундном интервале
Есть ли какие-либо объяснения?
// detect seconds in a second interval timer (works as expected)
setInterval(function() {
console.log('passed second from the secondInterval');
}, 1e3);
// detect seconds in a millisecond interval timer (I don't have any explanation for the behavior).
(function() {
var i = 0;
setInterval(function() {
if (i === 0) {
i++;
return;
}
if (i % 1000 === 0) console.log('passed second from the millisecondInterval');
i++;
}, 1);
})();
чек из примера в jsfiddle, чтобы увидеть, что я имею в виду http://jsfiddle.net/dwh82zos/
http://stackoverflow.com/questions/9647215/what-is-minimum-millisecond-value-of-settimeout –
Задержка выражается в миллисекундах, но не имеет миллисекундной точности. Подумайте об этом скорее как о предположении. Вы действительно хотите, чтобы веб-страницы запускали код 1000 раз в секунду? Реальный минимум, вероятно, составляет порядка 10-15 мс, в зависимости от браузера, ОС и т. Д. – Cameron
@ Камерон, который будет очень плохим, если вы работаете над рамками анимации, и вам действительно нужно, чтобы он был настолько точным. – Husamuddin