JS метод Object.clearInterval()
Загальний опис
clearInterval()
є глобальною функцією, що відіграє ключову роль у керуванні часом. Ця функція зупиняє виконання повторюваних дій, які були заплановані за допомогою setInterval()
. Управління часом є важливим елементом у програмуванні, особливо в асинхронних операціях, де потрібно керувати подіями, що відбуваються через певні інтервали часу. clearInterval()
корисний у різноманітних сценаріях, наприклад, при зупинці таймерів, анімацій або для контролювання часу запитів до сервера.
Найбільш поширений сценарій використання clearInterval()
- це зупинка інтервального таймера. Припустимо, у нас є таймер, який виводить повідомлення в консоль кожні 2 секунди:
let intervalId = setInterval(() => {
console.log("Таймер працює!");
}, 2000);
Для зупинки цього таймера використовуємо clearInterval()
:
clearInterval(intervalId);
Розширене Використання
clearInterval()
може бути корисним у складніших сценаріях, наприклад, коли потрібно зупинити інтервальний таймер після досягнення певної умови. Розглянемо наступний приклад:
let count = 0;
let intervalId = setInterval(() => {
console.log("Повторення: " + count);
if (count === 5) {
clearInterval(intervalId);
console.log("Таймер зупинено!");
}
count++;
}, 1000);
У цьому випадку таймер зупиняється після п’яти ітерацій.
Комбінування з іншими Функціями
clearInterval()
може бути ефективно комбінований з іншими функціями для створення складніших логік. Наприклад, ви можете використовувати setTimeout()
для старту інтервалу після затримки:
setTimeout(() => {
let intervalId = setInterval(() => {
console.log("Таймер активовано!");
}, 2000);
setTimeout(() => {
clearInterval(intervalId);
console.log("Таймер зупинено!");
}, 10000);
}, 5000);
Тут таймер починає працювати через 5 секунд після запуску скрипта, а потім зупиняється через 10 секунд.
Порада: | Щоб уникнути проблем з пам'яттю, завжди використовуйте метод
|
Порада: | Потрібно бути уважним при використанні Якщо ви хочете змінити інтервал під час його виконання, спочатку припиніть поточний інтервал за допомогою Приклад зміни інтервалу на 3 секунди після початкового запуску на 2 секунди:
|
Порада: | Пам'ятайте, що інтервальні функції виконуються асинхронно, тому будьте обережні при роботі зі змінними, які можуть змінюватися в іншому місці коду під час виконання інтервалу. Використовуйте замикання (closures) або передавайте параметри функції, щоб уникнути неочікуваної поведінки вашого коду. Приклад передачі параметра у функцію інтервалу:
Цей приклад передає змінну |
Синтаксис
clearInterval(intervalID)
Параметри
- *
intervalID
Ідентифікатор повторюваної дії, яку ви хочете скасувати. Цей ідентифікатор був повернутий відповідним викликом
setInterval()
.
Return
none
Повертає значення "undefined" (не визначено).
Переглядачі
Переглядач | |||||
---|---|---|---|---|---|
1 |
1 |
1 |
4 |
12 |
Переглядач | ||||
---|---|---|---|---|
37 |
18 |
4 |
1 |
Переглядач | ||
---|---|---|
0.10.0 |
1.0 |
Приклади
У цьому прикладі ми створюємо простий таймер, який підраховує кількість секунд. Кнопка "Старт" запускає таймер за допомогою setInterval()
, а кнопка "Стоп" призупиняє його роботу за допомогою clearInterval()
. Кнопка "Стоп" вимикається при завантаженні сторінки, оскільки таймер на початку не активний.
У цьому прикладі функція timerFunction
буде викликана кожну секунду, і вона виводить повідомлення про кількість пройдених секунд. Після того, як лічильник досягне 5 секунд, ми використовуємо clearInterval()
для припинення таймера.
// Задаємо початковий лічильник
let counter = 0;
// Функція, яка буде виконуватися щоразу через певний інтервал
const timerFunction = () => {
console.log(`Час минув: ${counter} секунд`);
counter++;
// Якщо лічильник досягнув 5 секунд, припиняємо таймер
if (counter === 5) {
clearInterval(timerInterval);
console.log("Таймер завершено.");
}
};
// Встановлюємо інтервал виконання функції (1 секунда)
const timerInterval = setInterval(timerFunction, 1000);
У цьому прикладі ми створюємо анімацію об'єкта, який рухається вліво та вправо на сторінці. Функція animateObject
викликається кожні 16 мілісекунд (приблизно 60 FPS) за допомогою setInterval()
. Ми також використовуємо clearInterval()
для припинення анімації при наведенні курсору миші на об'єкт і її поновлення при виведенні курсору.
const object = document.querySelector(".animated-object");
let position = 0;
let direction = 1;
let animationInterval;
const animateObject = () => {
position += direction;
object.style.left = position + "px";
if (position >= 300 || position <= 0) {
direction *= -1;
}
};
const startAnimation = () => {
animationInterval = setInterval(animateObject, 16); // 60 FPS
};
const stopAnimation = () => {
clearInterval(animationInterval);
};
startAnimation();
object.addEventListener("mouseenter", stopAnimation);
object.addEventListener("mouseleave", startAnimation);