Привет всем! У меня возник вопрос по JavaScript. Я использую функцию setInterval(), чтобы вызывать другую функцию каждые 10 секунд. Выглядит это примерно так:
function обновитьДанные() {
// Код для обновления данных
}
let интервал = setInterval(обновитьДанные, 10000);
Но теперь мне нужно дать пользователю возможность остановить это периодическое обновление. Как я могу прервать выполнение setInterval по какому-то событию, например, по нажатию кнопки? Буду благодарен за любые подсказки!
Для остановки setInterval используй clearInterval(). Вот пример:
let кнопкаСтоп = document.getElementById('стоп');
кнопкаСтоп.addEventListener('click', () => {
clearInterval(интервал);
});
Это прервет выполнение функции обновитьДанные(). Удобно сохранять ID интервала в переменную, чтобы потом его остановить. Можно также добавить проверку, запущен ли интервал, перед остановкой.
Можно ещё добавить флаг для отслеживания состояния интервала:
let активен = true;
function обновитьДанные() {
if (!активен) return;
// остальной код
}
let интервал = setInterval(обновитьДанные, 10000);
function остановить() {
активен = false;
clearInterval(интервал);
}
Так мы избежим лишних вызовов, если интервал уже остановлен. Плюс можно легко возобновить обновление, просто переключив флаг обратно.