[QUOTE]
Ашурали Умаров написал:
Скажите, в одном из видеоуроков я увидел, что в $this->SetResultCacheKeys(['']); в эту функцию передают все ключи, например выводят продукцию помещают ее в arResult['production'] и этот production передают в $this->SetResultCacheKeys(['production']) и выводят это все в шаблоне. Вопрос в том, что даже если не помещать этот ключ, все равно кешируется хтмл вывод с этой продукцией, имеет ли тогда смысл помещать productuion в SetResultCacheKeys[/QUOTE]
У вас очень хороший и правильный вопрос! :)
Вы правы, если вам не нужны значения arResult['production'] для еще чего-то кроме вывода в шаблоне (в не кешируемой части, например для установки значения мета тегов), то помещение в кеш не только не нужно, но и является критичной ошибкой из-за которой экзамен не будет сдан.
Посмотрите как указано требование к решению
[URL=http://training.1c-bitrix.ru/upload/exam_dev/pubinfo/Ex2Description.pdf]http://training.1c-bitrix.ru/upload/exam_dev/pubinfo/Ex2Description.pdf[/URL]
(!) В кеш компонента сохраняются значения только тех переменных, которые
будут использоваться далее в некешируемой части компонента. Это необходимо
чтобы не допустить разрастание размера файлов кеша и роста ресурсов на их
парсинг. При большом объеме данных в файлах кеша можно получить не
прирост производительности, а обратную ситуацию. По умолчанию компонент
сохраняет в кеш весь arResult (поведение для обратной совместимости),
разработчик обязательно должен поместит в кеш только те данные, что будет
использовать в некэшируемой части.
Подробно этот вопрос разбирали тут
[URL=https://academy.1c-bitrix.ru/education/?COURSE_ID=66&LESSON_ID=9077&LESSON_PATH=5863.9077]https://academy.1c-bitrix.ru/education/?COURSE_ID=66&LESSON_ID=9077&LESSON_PATH=5863.9077[/URL]