На сайте сделан ajax шаблон постраничной навигации, всё просто, перехватывается клик по ссылке в навигации, ajax-ом отправляется запрос. Из ответа с помощью jquery достаётся содержимое контентной части страницы и заменяется содержимое на текущей странице в том же блоке. Примерно так:
Код
//перехватываение события click()
$.get(
link.attr('href'), //Ссылка, например /catalog/vino/?PAGEN_2=3
function(response) { //Обработка ответа
//ищем товары в ответе, заменяем их в DOM-е текущей страницы
// ищем блок постраничной навигации и зменяем его в DOM-е текущей страницы
}
без композита всё работает безотказно как автомат Калашникова, при включенном композитном режиме наблюдает баг такого характера. Если идти по страницам постраничной навигации по возрастанию, т.е. 2,3,4 ...n всё ок, товары грузятся, блок с навигацией обновляется. Если шагнуть назад, товары пропадают. Я посмотрел что в этом случае приходит в ответе response в js-обработчике постраничной навигации. Там в блоке где должны быть товары висит вот такой вот блок:
и всё. В шаблоне компонента catalog.section у меня все динамическая область идёт на весь шаблон. Т.к. перед вызовом компонента в файле section.php формируется фильтр с учётом ID региона пользователя и на одни и те же товары может быть разная цена в разных регионах. Пришлось обернуть в динамическую область всё. Т.е. шаблон выглядит так:
Код
$this->setFrameMode(true);
//вывод пары статичных элементов не зависящих от фильтра
$frame = $this->createFrame()->begin('');
//тут основной код шаблона, цикл с выводом товаров и т.п.
// потом вывод постраничной навигации т.е. echo $arResult["NAV_STRING"];
$frame->end();
Согласно докам (https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=39&LESSON_ID=3253), чтобы в композите работали скрипты js, я вынес обработчик постраничной навигации прямо в шаблон компонента system.pagenavigation (а то из подключаемого файла script.js не хотело работать). Собственно я не могу понять почему при "возврате" на предыдущие страниы в постраничной навигации с включённым композитом, приходит пустой список товаров и как это можно победить.