Я бы хотел, чтобы страницы продолжали использовать механизм кэширования Drupal 8 для анонимных пользователей, за исключением определенных блоков, которые должны обновляться при каждом обновлении страницы, зная, что они генерируются из представлений.
Это технически возможно? Как?
Ответы:
Что показывает этот блок просмотров?
D8 имеет теги кеша и контексты, которые автоматически аннулируют блок, если что-то изменится.
Таким образом, если у вас есть список узлов, каждый раз, когда узел добавляется или обновляется, этот блок будет обновляться, но до тех пор используется кэшированная версия. Что гораздо лучше, чем перестраивать на каждой странице.
Он также работает с кешем страниц, эти страницы также будут обновляться автоматически.
Многие, многие вещи просто работают с кэшированием из коробки, без необходимости каких-либо ручных настроек.
Редактировать (отвечая на комментарий):
Случайный с плагином случайной сортировки? Это должно автоматически пометить этот блок как не кешируемый. Это, однако, не влияет на модуль кеш страницы. Теперь есть новый модуль SmartCache / динамического кэширования страниц, но он будет только в следующей бета-версии (или RC!). Это в конечном итоге позволит кэшировать оставшуюся часть страницы и просто создать эту часть.
Но такой случай, вероятно, лучше всего реализовать с использованием некоторого JavaScript. Если есть только несколько узлов, вы можете отобразить их все, скрытые по умолчанию и просто случайным образом сделать один из них видимым. Или запросите URL с javascript, который возвращает случайное объявление, или, что еще лучше, посетите случайный из N URL, каждый из которых возвращает объявление (например, вернув список URL и выбрав один из них. Вы можете даже сделать это непосредственно для URL изображения ,
источник
Если это пользовательский блок, вы можете использовать Cache API и установить максимальный возраст кэша в 0, например
Если это существующий блок, вы можете изменить его, чтобы добавить его в массив визуализации.
источник