написал: Здравствуйте, вопрос по заданию второго билета [ex2-102] там получается что выводятся тестовые новости из предыдущего задания [ex2-97] будет ли такое отображение считаться верным, или как быть что требуется с этими тремя новостями тестовыми сделать?
в задании дан пример реализации переключателя там есть и новости
написал: Здравствуйте, вопрос по заданию второго билета [ex2-102] там получается что выводятся тестовые новости из предыдущего задания [ex2-97] будет ли такое отображение считаться верным, или как быть что требуется с этими тремя новостями тестовыми сделать?
в задании дан пример реализации переключателя там есть и новости
не понял ничего из вашего ответа... В смысле "там есть и новости" ? Оба задания предполагают работу над "Новости", это и так понятно. Вопрос был в другом - в том что в задании 102 вылезают новости из задания 97, в которых по заданию 102 не указывается что вводить в доп. поля "Название на английском", "Анонс на английском". Или вы не понимаете вопроса? Прочтите пожалуйста его еще раз...
написал: Вопрос был в другом - в том что в задании 102 вылезают новости из задания 97, в которых по заданию 102 не указывается что вводить в доп. поля "Название на английском", "Анонс на английском". Или вы не понимаете вопроса? Прочтите пожалуйста его еще раз...
боюсь, вопрос непонятен уточните пожалуста, конкретно
- какое задание, из какого билета (имеются в виду задания для подготовки) - какой именно вопрос
написал: Судя по видео у Вас на 30.11.2021 стоит экзамен - завтра "Начать" и появитсяНа сколько я помню отсчёт начинается когда успешно авторизуешься на площадке с экзаменационным заданием.
написал: Вопрос был в другом - в том что в задании 102 вылезают новости из задания 97, в которых по заданию 102 не указывается что вводить в доп. поля "Название на английском", "Анонс на английском". Или вы не понимаете вопроса? Прочтите пожалуйста его еще раз...
боюсь, вопрос непонятен уточните пожалуста, конкретно
- какое задание, из какого билета (имеются в виду задания для подготовки) - какой именно вопрос
написал: Вопрос был в другом - в том что в задании 102 вылезают новости из задания 97, в которых по заданию 102 не указывается что вводить в доп. поля "Название на английском", "Анонс на английском". Или вы не понимаете вопроса? Прочтите пожалуйста его еще раз...
если вопрос в том, что именно вводить в доп поля (какие именно значения) - не суть важно. Если это не указано прямо
И в видео с 50:27 говорится "У нас есть огромное правило, так нельзя оставлять" https://youtu.be/KC6WcgaEWt4?t=3027 так это что получается, нужно делать вот такой вызов $this->setResultCacheKeys(array()); или что? Может же быть ситуация что компонент ничего не использует в некешируемой части... (component_epilog.php).
Не могу понять эти 2 момента... Не сдал экзамен из-за ошибки связанной с этим. Просьба - дайте пожалуйста прямые ответы на эти вопросы, они заданы конкретно и точно...
написал: просмотрел это видео несколько раз но не могу понять почему у меня все равно в файле кеша компонента, содержится столько данных!
Вычеслав, добрый вечер,
Для того чтобы решить задание правильно, следует понять, что такое кешируемая часть компонента и его шаблона и какие именно данные там нужны. где именно следует вызывать метод для указания ключей, какие ключи ему указывать.
Готовых решений мы не даем, это часть подготовки к экзамену, которую кандидат должен сделать самостоятельно. В записи вебинара все есть, она не первый год существует и помогла уже не одному слушателю, по отзывам, подготовиться.
PS: попробуйте пересоздать кеш (сделать это вне режима правки). Это касается приведенного Вами фрагмента
написал: Готовых решений мы не даем, это часть подготовки к экзамену, которую кандидат должен сделать самостоятельно.В записи вебинара все есть, она не первый год существует и помогла уже не одному слушателю, по отзывам, подготовиться.
Я и не просил вас дать готового решения, мой второй вопрос, задан по ситуации которая в общем может быть в "жизни", но ее скорее всего нет в заданиях на экзамене. Какой тут может быть секрет не понимаю...
И в видео с 50:27 говорится "У нас есть огромное правило, так нельзя оставлять" https://youtu.be/KC6WcgaEWt4?t=3027 так это что получается, нужно делать вот такой вызов $this->setResultCacheKeys(array()); или что? Может же быть ситуация что компонент ничего не использует в некешируемой части... (component_epilog.php).
и наверное дополню:
если компонент по умолчанию сохраняет в кеш весь $arResult (для обр. совместимости), то что я должен сделать, если мне не нужны никакие данные в не кешируемой части (component_epilog.php и component.php)? Допустим, к примеру не надо ни заголовков устанавливать ни AddViewContent и т.п? Вот так вызвать $this->setResultCacheKeys(array()); ?
У вас в видео этот момент не освещается, но ситуация имеет место быть в жизни, разве нет? Так вот, как я могу самостоятельно понять, что нужно делать в такой ситуации? Только вы можете сказать, как это должно быть сделано правильно, по вашим правилам....
написал: PS: попробуйте пересоздать кеш (сделать это вне режима правки). Это касается приведенного Вами фрагмента
попробовал
1)указал только нужные ключи $this->SetResultCacheKeys(array('ELEMENT_CNT', 'PRICE_MIN', 'PRICE_MAX')); 2) удалил весь кеш 3) открыл станицу с компонентом в режиме инкогнито 4) открыл новый созданный файл кеша, и да там данных стало меньше, НО там все равно присутствуют те данные в (сериализованном массиве "templateCachedData") которые я не указывал в SetResultCacheKeys! Это нормально или нет? Чем это объясняется, что то с этим нужно делать или нет?
в компоненте валидный кеш возвращает (и хранит) два типа данных
1. Полностью сгенерированный html код по шаблону (тут что сгенерировали, то сгенерировали) 2. $arResult (а вот тут смотрим - надо ли нам чего то и если надо - пихаем в SetResultCacheKeys() )
написал: Если Вы смотрели видео - там наглядно демонстрируют, как посмотреть данные непосредственно в кеше (сам файл).
конечно смотрел, но там показывают только "не правильный" файл кеша, до применения SetResultCacheKeys, а правильный который должен быть (и будет правильным на экзамене) нет... Я применяю SetResultCacheKeys но вижу что там все равно в сериализованном массиве есть данные, ключи которых я не указывал в SetResultCacheKeys. По этому возникают эти вопросы, вы не думайте что я эксперименты не провожу... Хочется полностью во всех нюансах разобраться что бы не было никаких неосознанных моментов "загадок". Спасибо за участие!
смысл такой - в arResult передаём всё что нужно для генерации шаблона (это понятно) потом смотрим, что нам потребуется в component_epilog.php - и пихаем это в SetResultCacheKeys()
по умолчанию этот метод не вызывается и куча лишнего идёт в кеш, хотя 99% всё это просто не используется
я бы на месте Битрикса сделал наоборот, и было бы понятнее - если вызова SetResultCacheKeys не было - то arResult вообще не кешировать
написал: потом смотрим, что нам потребуется в component_epilog.php - и пихаем это в SetResultCacheKeys()
так я это сделал $this->SetResultCacheKeys(array('ELEMENT_CNT', 'PRICE_MIN', 'PRICE_MAX')); но в файле кеша все равно в сериализованном коде присутствует куча каких то данных "левых" (красным). Вот откуда они там, должны они там быть, правильно это или нет, как я могу это понять сам?
написал: 4) открыл новый созданный файл кеша, и да там данных стало меньше, НО там все равно присутствуют те данные в (сериализованном массиве "templateCachedData") которые я не указывал в SetResultCacheKeys! Это нормально или нет? Чем это объясняется, что то с этим нужно делать или нет?
следует разобраться , из чего состоит файл кеша помимо данных из массива $arResult, там есть еще некие служебные данные компонента, шаблона, а также самого кеша это нормально Вы можете десериализовать содержимое кеша (с помощью unserialize) и воочию увидеть этот массив