Подтвердить что ты не робот

Функция прокрутки Javascript медленная, много событий "Таймер уволен: onloadwff.js: 310" в Chrome

Я пытаюсь отлаживать страницу, которая в Chrome немного замедляется, подумайте, что это может быть проблема со следующим кодом javascript:

$(document).ready(function() {
  function navScroll(distance){
    $(window).scroll(function() {
      var scrollTop;
      if(distance){
        scrollTop = distance;
      }else{
        scrollTop = 150;
      }
      if($(window).scrollTop() >= scrollTop) {
        if(!($('#mainNav').hasClass('showNav'))) {
          $('#mainNav').addClass('showNav');
        }
      } else {
        if($('#mainNav').hasClass('showNav')) {
          $('#mainNav').removeClass('showNav');
        }
      }
    });
  }

  if($('.header-image-base').length){
    var windowHeight = $(window).height();
    $('.header-image-base').css('height', windowHeight);
    navScroll(windowHeight);
  }else{
    navScroll();
  }
});

Когда я смотрю в панели "шкала времени" консоли Chrome и нажимаю запись, это то, что я вижу:

enter image description here

Любые идеи, что здесь происходит? Я не могу найти никаких ссылок на это в google и не знаю, как исправить это.

4b9b3361

Ответ 1

Ваша страница медленнее, скорее всего, потому что вы снова прикрепляете обработчик к событию прокрутки окна - это не очень хорошая практика, как описано ниже:

Это очень, очень и плохая идея привязать обработчики к событию прокрутки окна. В зависимости от браузера событие прокрутки может много гореть, а ввод кода в обратном вызове прокрутки замедляет любые попытки прокрутки страницы (не очень хорошая идея). Любое снижение производительности в обработчике прокрутки в результате приведет только к снижению производительности прокрутки в целом. Вместо этого гораздо лучше использовать какую-либо форму таймера для проверки каждого X миллисекунды или для присоединения события прокрутки и запускать ваш код только после задержки (или даже после заданного количества исполнений, а затем задержка). (источник)

Ваш скриншот показывает, что onloadwff.js находится в chrome-extension://hdokiejnpimakedhajhdlcegeplioahd, что означает его часть s LastPass extension — как показано ниже. Поэтому он, вероятно, не связан с вашей проблемой производительности.

screenshot

(заархивированный скриншот)

Ссылка - https://chrome.google.com/webstore/detail/lastpass-free-password-ma/ hdokiejnpimakedhajhdlcegeplioahd