/!\Указал у вопроса теги 1С-Битрикс и Кеширование, если вопрос не относится к второму тегу пожалуйста удалите его.
Вопрос задаётся с целью найти подходы к разработке bitrix с разумным управлением кешем, поэтому не нужно ограничивать ответы на него конкретной задачей.
Есть интернет магазин на bitrix в нём каталог. При выводе основного раздела каталога вызывается компонент, который внутри себя вызывает другие, так доходит до вывода конкретного товара(для отображения html каждого товара вызывается компонент catalog.item). Пишу всё это чтобы было понятно что вызов компонентов производится внутри другого по цепочке, таким образом закешироваться динамические данные могут выше компонента в котором они запрашиваются из БД.
В частности есть самописная библиотека для отображения лайков на товарах (код здесь, хотя к вопросу отношения не имеет -
blog.ivru.net/?id=49 )
Так вот при нажатии на лайк запрос уходит на api меняет статут лайка(установлен снят), но при повторной загрузке страницы каталога информация не отображается, так как выводится кеш вышестоящего компонента и до запроса информации в файле result-modifier.php компонента catalog.item просто не доходит.
Тут такой момент, фактически сбросить кеш я могу в файле на который уходит ajax для изменения состояния. Например так BXClearCache(true, "/s1/bitrix/catalog.section/"); (проверено работает), вот только этот запрос почистит кеш всего catalog.section в том числе других пользователей у которых информацию можно было продолжать загружать из кеша.
Интересуют следующие вопросы:
1) есть ли возможность получить в процессе работы название файла кеша из которого была загружена страница? Тогда я бы просто удалил именно этот файл.
2) есть ли механизмы по управлению кешем компонента привязанные к пользователю?(я имею ввиду если сессии пользователя вдруг достаточно для того чтобы управлять именно его кешем, тогда в ajax запросе мне не нужно было бы даже передавать адрес файле кеша, если всё необходимое есть в сессии).