Как сделать некешируемый вызов TV?
Добрый день!
Собственно весь вопрос в заголовке.
Есть страница, она кешируется, т.е по умолчанию стоит галочка «Кешируемый ресурс». В шаблоне этой страницы вызывается чанк [[!$Chank]]. В этом чанке вызывается TV-страницы [[!*TV1]], [[!*TV2]]. Так вот: кешируются эти TV и всё тут.
Ума не приложу, что делать. Если снять галочку «Кешируемый ресурс», то всё нормально работает. Но, ради пары динамичных цифр на странице убирать её всю из кеша — нелогично.
Что делать-то?
Спасибо за понимание!
P.S. TV меняю в сниппете, которых вызывается со страницы через ajax
P.P.S. Было предложено в этом сниппете вызывать clearCashe(). Не у верен, что это правильно. Хотя?!
Собственно весь вопрос в заголовке.
Есть страница, она кешируется, т.е по умолчанию стоит галочка «Кешируемый ресурс». В шаблоне этой страницы вызывается чанк [[!$Chank]]. В этом чанке вызывается TV-страницы [[!*TV1]], [[!*TV2]]. Так вот: кешируются эти TV и всё тут.
Ума не приложу, что делать. Если снять галочку «Кешируемый ресурс», то всё нормально работает. Но, ради пары динамичных цифр на странице убирать её всю из кеша — нелогично.
Что делать-то?
Спасибо за понимание!
P.S. TV меняю в сниппете, которых вызывается со страницы через ajax
P.P.S. Было предложено в этом сниппете вызывать clearCashe(). Не у верен, что это правильно. Хотя?!
Комментарии: 17
Так сделайте сниппет
[[!getTV? &name=`TV1`]]
return $modx->resource->getTVValue($name);
Илья, спасибо за совет. А штука со знаком восклицания с TV не прокатывает? [[!*TV]]
Ну, видимо, нет)))
Она прокатывает, но сниппет вызывается уже после того, как заполняются значениями массивы со звездочками.
+1
Илья, не работает
В общем, получается, что либо чистить кеш при каждой смене значения TV на странице, либо делать вызов TV через свой сниппет.
Почистить кеш — одна строка в коде, но, наверное, кушает сколько-то ресурсов.
Написать +1 сниппет не проблема, но как-то нелогично.
clearCash() — много ресурсов кушает?
Почистить кеш — одна строка в коде, но, наверное, кушает сколько-то ресурсов.
Написать +1 сниппет не проблема, но как-то нелогично.
clearCash() — много ресурсов кушает?
Очистка кэша не слишком много ресурсов съест, но последующее его набивание намного более ресурсоемкое.
Спасибо. Понял. Значит, наш выбор — +1 сниппет :-)
Да и сниппет вряд ли поможет.
Сниппет не помог, что странно. Тогда вопрос исчерпан: чистим кеш и не паримся :-)
Ничего странного. И очистка кэша не поможет.
почему не поможет. Уже помогает. Всё работает
1. Браузер запрашивает страницу отправляя запрос на сервер.
2. MODX формирует страницу — шаблон, чанки, спиппеты, плейсхолдеры, ТВшки. Дальше отдает назад браузеру.
3. Браузер, получив ответ, отрисовывает страницу. По готовности DOM модели или по кнопке браузер выполняет ajax запрос, который что-то меняет на сервере.
Вопрос, как измененные данные на сервере должны измениться в браузере (без яваскрипта)?
Я видимо чего-то не понимаю.
Кроме того
2. MODX формирует страницу — шаблон, чанки, спиппеты, плейсхолдеры, ТВшки. Дальше отдает назад браузеру.
3. Браузер, получив ответ, отрисовывает страницу. По готовности DOM модели или по кнопке браузер выполняет ajax запрос, который что-то меняет на сервере.
Вопрос, как измененные данные на сервере должны измениться в браузере (без яваскрипта)?
Я видимо чего-то не понимаю.
Кроме того
Если снять галочку «Кешируемый ресурс», то всё нормально работает. Но, ради пары динамичных цифр на странице убирать её всю из кеша — нелогично.А вызывать метод чистки кэша при каждом запросе — это логично?
а-а-а, я понял в чем возникла непонятка. Я виноват, неверно объяснил вводную.
Данные с помощью ajax ушли на сервер, вернулись, javascript'ом вставились куда надо. Всё хорошо. Дальше, жму F5 или перехожу на другую страницу, а потом возвращаюсь. Данные берутся из кеша, т.е. те, которые были до манипуляций с ajax. В этом и была загвоздка, что вроде должны опять обработаться сервером, потом отобразиться браузером… т.е. Ваши пункты 1,2,3, но всё было не так как надо :-)
Поэтому, когда после ajax'а данные ушли на сервер, там обработались (+почистился кеш страницы), потом вернулись и вставились, жмем F5 и у нас грузится страница с нормальными данными.
Данные с помощью ajax ушли на сервер, вернулись, javascript'ом вставились куда надо. Всё хорошо. Дальше, жму F5 или перехожу на другую страницу, а потом возвращаюсь. Данные берутся из кеша, т.е. те, которые были до манипуляций с ajax. В этом и была загвоздка, что вроде должны опять обработаться сервером, потом отобразиться браузером… т.е. Ваши пункты 1,2,3, но всё было не так как надо :-)
Поэтому, когда после ajax'а данные ушли на сервер, там обработались (+почистился кеш страницы), потом вернулись и вставились, жмем F5 и у нас грузится страница с нормальными данными.
не кеш ли это браузера?
Shift + F5 тоже не прокатывает
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.