@ozerovlife

Почему Observer перегружает браузер?

Несколько дней все работало нормально. И сегодня начало перегружать страницу. Даже консоль разработчика не могу открыть. Просто виснет вкладка. В любом браузере. Удаляю этот код и все работает нормально.
суть работы это следить за добавлением класса элементу и подсвечивать стрелки слайдера если условие подходит.

function observeSliderNav(wrapperClass, prevButtonClass, nextButtonClass){
    const slides = document.querySelector(`.${wrapperClass}`);
    const prevButtonPath = document.querySelector(`.${prevButtonClass} svg path`);
    const nextButtonPath = document.querySelector(`.${nextButtonClass} svg path`);

    let observer = new MutationObserver( old => {
        let childs = slides.childNodes;
        let slidesArray = [];

        childs.forEach(item => {
            if(item.localName === 'div') slidesArray.push(item)
        })

        slidesArray.forEach((item,index) => {
            if(item.classList.contains('swiper-slide-active') || item.classList.contains('smart-active')){
                if(index === 0){
                    prevButtonPath.setAttribute('fill-opacity', '0.3')
                    nextButtonPath.setAttribute('fill-opacity', '0.8')
                }
                else if(index !== 0){
                    prevButtonPath.setAttribute('fill-opacity', '0.8')
                    nextButtonPath.setAttribute('fill-opacity', '0.8')
                }
                if(index === slidesArray.length - 1){
                    nextButtonPath.setAttribute('fill-opacity', '0.3')
                }
            }
        })
    })

    observer.observe(slides, {
        childList: true,
        subtree: true,
        characterData: true,
        attributes: true
    })
}

window.addEventListener('load', () => {
    observeSliderNav('swiper-wrapper', 'swiper__prev_sett ', 'swiper__next_sett' );

})
  • Вопрос задан
  • 71 просмотр
Решения вопроса 1
Xuxicheta
@Xuxicheta
инженер
Вы включаете наблюдение за изменением аттрибутов, а в самом коллбэке наблюдения изменяете аттрибуты. Ничего не смущает?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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