@dima_maketov
Мои тупые вопросы вносят вклад в сообщество.

Как минимизировать нагрузку от JQuery проверок setInterval?

Добрый день!
Подскажите как оптимизировать этот код? Написал этот код в качестве проверок для формы и верхнего меню. Но кажется, что он очень убог и имеет сильную нагрузку на устройство(особенно смартфоны). Как минимизировать энергозатраты на проверки или минимизировать их?

setInterval(
			function(){
        if($('#main__background .phone').val() != '' && $('#main__background .phone').val().search('_') == -1){
          $('.success-get-top').prop('disabled', false);
        }else{
          $('.success-get-top').prop('disabled', true);
        }
        if($(window).width() <= 415){
          if($(window).scrollTop() == 0){
            if($('.bot').hasClass('hide')){
              $('.bot').removeClass('hide');
            }
            if($('#main__background').hasClass('up')){
              $('#main__background').removeClass('up');
            }
          }
          else if($(window).scrollTop() != 60){
            $('.bot').addClass('hide');
            $('#header').addClass('up');
            $('#main__background').addClass('up');
          }
			}
    }, 350);
  • Вопрос задан
  • 217 просмотров
Пригласить эксперта
Ответы на вопрос 2
petermzg
@petermzg
Самый лучший программист
Для начала хотябы уберите двойные запросы по селектору.
if($('.bot').hasClass('hide')){
   $('.bot').removeClass('hide');
}

Достаточно
$('.bot').removeClass('hide');

Это
if($('#main__background .phone').val() != '' && $('#main__background .phone').val().search('_') == -1)

Замените на
var phvl = $('#main__background .phone').val();
if (phvl != '' && phvl.search('_') == -1)


Это
var w = $(window);
if(w.scrollTop() != 60)
Ответ написан
@Stepanya
Перепишите без использования setInterval.
Это вообще выносит в onResize
if($(window).width() <= 415){
if($(window).scrollTop() == 0){
if($('.bot').hasClass('hide')){
$('.bot').removeClass('hide');
}
if($('#main__background').hasClass('up')){
$('#main__background').removeClass('up');
}
}
else if($(window).scrollTop() != 60){
$('.bot').addClass('hide');
$('#header').addClass('up');
$('#main__background').addClass('up');
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы