2016-04-27 1 views
1

Я пытаюсь создать простой интервал, но он работает медленнее, чем ожидалось. Я должен видеть сообщение каждые 100 мс, но вместо этого я вижу его каждые 1 секунду или около того. Я просто не понимаю, что случилось со следующим кодом:setInterval() работает медленнее, чем ожидалось

var readyWaitElapsed = 0; 
var readyWait = window.setInterval(function(){ 

    readyWaitElapsed += 100; 

    console.log("Elapsed value", readyWaitElapsed); 

    if (readyWaitElapsed >= 1000){ 
    clearInterval(readyWait); 
    console.log("Timeout !"); 
    } 
}, 100); 

Когда я вставить его в консоль Chrome я вижу только «Прошедшее значение» -message каждую 1 секунду или так и clearInterval() «тайм-аут» требуется не менее 10 секунд.

У кого-нибудь есть идеи?

ответ

1

Оказывается, я запускал код на неактивной вкладке, когда консоль была активной. Очевидно, когда вкладка не активна (не в фокусе), по крайней мере, Chrome замедляет интервал и время ожидания для экономии ресурсов.

Это замедление, по-видимому, не очень точно привязано к любому значению, поэтому нельзя полагаться и на него.

+0

intertesting point спасибо за отзыв – Walfrat