JavaScript setInterval() — повторювати код через рівні проміжки


Метод setInterval() виконує функцію знову й знову, через заданий проміжок у мілісекундах.

автор: NagarD

Загальний опис

Виглядає зручно, але має підступну ваду: інтервал не чекає на завершення попереднього виклику. Якщо функція виконується довше за проміжок, виклики почнуть накопичуватись і накладатись один на одного.

Саме тому для повторюваних запитів надійніше ланцюжок із setTimeout: наступний виклик планується після того, як попередній закінчився.

Для анімацій його не беруть узагалі — там є requestAnimationFrame, синхронізований із частотою екрана.

автор: NagarD

Нотатка

Інтервал працює вічно, доки його не скасують. Забутий setInterval — класичний витік: сторінка давно змінилась, а він усе тікає в фоні.

автор: NagarD

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
setInterval 1+ 1+ 1+ 3+ 12+ 5+
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
setInterval yes yes yes yes

Приклади

+ запропонувати свій приклад у пісочниці

Лічильник і безпечніша заміна для повторюваних запитів.

let seconds = 0;

const id = setInterval(() => {
    seconds++;
    console.log(seconds);

    if (seconds === 5) {
        clearInterval(id); // інакше тікатиме вічно
    }
}, 1000);

// для запитів надійніше так: наступний — ПІСЛЯ попереднього
async function poll() {
    await fetch('/api/status');
    setTimeout(poll, 5000);
}
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід