Пожалуйста, смотрите следующий код JavaScript:JavaScript setInterval и SetTimeout вопрос времени
var cis_current_time = 0;
setInterval(function() {
cis_current_time += 1;
},1);
$("#timingInfo").html(cis_current_time);
setTimeout(function() {
$("#timingInfo").html($("#timingInfo").html() + ', ' + cis_current_time);
},1000);
В результате я за исключением того, чтобы получить 0, 1000, но она возвращает 0, число около 200
Пожалуйста, проверьте fiddle.
В чем причина такого поведения?
setInterval не точен –
Уже ответили ранее. 'setTimeout' и' setInterval' имеют минимальную точность 4 ~ 5 мс. Я полагаю (потому что на самом деле он говорит «_ после текущих функций», примерно за миллисекунды »), поэтому вы не сможете запускать каждую миллисекунду. Это уже было показано на SO, но где ... –
, а также быть неточным, это только гарантированные минимумы.Они действительно означают «запустить этот код [повторно] через некоторое время после x миллисекунд». –