Drupal 6 - отключить кэш представлений для определенного представления - PullRequest
3 голосов
/ 30 марта 2011

У меня много просмотров, которые меняются не очень часто, и я пользуюсь преимуществами кэширования.Но у меня есть 1 вид, который используется для отображения случайной кавычки в блоке на моей боковой панели, который я не хочу кэшировать.Есть ли способ отключить кэширование для этого конкретного представления?В частности, я хочу видеть разные цитаты каждый раз, когда обновляю страницу.

ОБНОВЛЕНИЕ: у меня установлен режим кэширования на «Нормальный» в настройках производительности моего сайта, и я попытался перейти к просмотру и настройке «Кэширование» =Нет (как и в настройках блока: Кэширование = не кэшировать), перейдя на страницу инструментов «Представления» и выбрав «Отключить кэширование данных представлений», и это будет работать, когда я вошел в систему, но как только я выйду из системы,после обновления цитата остается прежней.

ОБНОВЛЕНИЕ: я начинаю думать, что если вы включили кеширование страниц в Drupal, то все остальные настройки кеша игнорируются (т. е. View и Block caching).Кто-нибудь может это подтвердить?

Ответы [ 3 ]

2 голосов
/ 30 марта 2011

В пользовательском интерфейсе Views под Basic settings определенного дисплея у вас есть опция с именем Caching. И ваше мнение не будет кэшировано. Таким образом, вы получаете случайный цитирую каждый раз. :)

РЕДАКТИРОВАТЬ: Ой, как я пропустил то, что вы говорили: (

Используйте модуль Cache Exclude , чтобы отключить кэширование на конкретной странице. Если ваш случайный блок находится на многих страницах, возможно, вам придется копать глубже, чтобы найти альтернативные решения. Всего наилучшего;)

1 голос
/ 13 апреля 2012

Предложение: рандомизировать на стороне клиента. Загрузите их все в массив javascript и напишите быструю функцию для выбора случайной кавычки при загрузке страницы. Если нет сотен возможных цитат, это не должно слишком сильно давить на страницу, и вы можете исключить эту маленькую боковую панель из рассмотрения при работе над своей стратегией кэширования.

На самом деле, даже если есть сотни случайных кавычек, вы можете использовать комбинацию двух подходов. Схватите 50 случайных строк с вашим модулем, и они позволят выбрать из них javascript. Для конечного пользователя это будет почти идентично.

0 голосов
/ 31 марта 2011

Блок может быть кэширован.Вы пытались http://drupal.org/project/blockcache_alter?

Вы также можете напрямую изменить настройку кэша блока в базе данных с помощью чего-то вроде:

update blocks set cache=-1 where bid=<blockbid>;

Установка этой записи в кеше означает -1блок не будет кеширован.

Кроме того, установка кеша в 1 будет кешировать блок для каждой роли, 2 будет кешировать блок для каждого пользователя, 4 будет кешировать блок для каждой страницы, а 8 будет точно кешировать блок.один раз (одинаково для всех пользователей, страниц и т. д.).

...