Почему после загрузки страницы DOM-дерево компонента автоматически обновляется?
Привет. Заметил очень странное поведение компонента news.list на странице: если зайти без авторизации на страницу, то при первой загрузке после сброса кеша все работает как надо, а вот после второй - происходит так же нормальная загрузка, но по ее окончанию обновляется DOM дерево и перестают работать скрипты этого компонента. Можно отловить момент, когда можно заметить работу скриптов, но после обновления дерева они отваливаются, но остаются на странице. Если заходить на страницу под авторизацией - все в порядке.
Подскажите, пожалуйста, из-за чего может быть такое поведение?
itemashabanov, я рекомендую все же отключить композит.
Боюсь вы не сможете поправить шаблон, если не понимаете почему он перестает работать.
Сам заданный вопрос вами говорит о том, что вы не очень хорошо понимаете как развешиваются события на элементы DOM, исправить огромный, сложный и откровенно плохой Js который как правило есть в шаблонах битрикс боюсь у вас не получится.
Александр Маджугин, если я правильно понял, то это все работает верно: сразу грузится одно, а потом аяксом подгружается другое?! Т.е. тогда адаптация шаблона заключается в том, чтобы переписать обработчики событий чтобы все функции работали корректно?!
itemashabanov, проблема в том, что события на элементы DOM навешиваются по событию готовности страницы $.ready или что-то подобное - несмотря на то, что это распространенная практика - так делать нельзя, так в этом случае js полагается на html и неизменность DOM.
Вам нужно или с помощь каких-то костылей реинициализировать события, при этом как-то не допустив двойного навешивания, либо избавится от порочной практике, когда один код полагается на другой. Избавится от связности js и html
Александр Маджугин, да-да, эти моменты я знаю. Просто думал, что это неверное поведение загрузки страницы и не хотел переписывать, но если так и должно быть - нужно переписать)