Почему начинает тормозить функционал на странице при использовании функции setInterval? Файл json должен считываться каждую секунду. (размер файла около 1Кб)
Получение данных из файла json реализовано с помощью AJAX jQuery (функция GetCHANGE())
Через несколько минут после запуска страницы весь функционал на странице начинает тормозить и чем дальше, тем больше. Как можно решить эту проблему?
Код:function timer(){
setInterval(function() {
var autoPlay = setInterval( GetCHANGE(), 1000 );
if (autoPlay!=='undefined'){
clearInterval(autoPlay);
}
}, 1000);
}
timer();

21 Авг 2019 в 06:23
229 +1
0
Ответы
1

Проблема возникает из-за того, что вы каждую секунду создаете новый интервал с функцией GetCHANGE(), что приводит к накоплению множества интервалов и возможному перегрузу страницы.

Для решения этой проблемы вам необходимо переписать ваш код следующим образом:

function timer(){
var autoPlay;
setInterval(function() {
if(autoPlay) {
clearInterval(autoPlay);
}
autoPlay = setInterval(GetCHANGE, 1000);
}, 1000);
}
timer();

Теперь переменная autoPlay объявлена за пределами функции setInterval, чтобы избежать создания нового интервала каждую секунду. Также, исправлена ошибка в вызове функции GetCHANGE() (удалены скобки), чтобы передавалась ссылка на функцию, а не результат ее выполнения.

Это позволит установить интервал выполнения функции GetCHANGE() каждую секунду без возникновения излишней нагрузки на страницу.

20 Апр в 13:19
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 588 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир