Как сделать некешируемый вызов TV?

Добрый день!

Собственно весь вопрос в заголовке.
Есть страница, она кешируется, т.е по умолчанию стоит галочка «Кешируемый ресурс». В шаблоне этой страницы вызывается чанк [[!$Chank]]. В этом чанке вызывается TV-страницы [[!*TV1]], [[!*TV2]]. Так вот: кешируются эти TV и всё тут.

Ума не приложу, что делать. Если снять галочку «Кешируемый ресурс», то всё нормально работает. Но, ради пары динамичных цифр на странице убирать её всю из кеша — нелогично.

Что делать-то?

Спасибо за понимание!

P.S. TV меняю в сниппете, которых вызывается со страницы через ajax
P.P.S. Было предложено в этом сниппете вызывать clearCashe(). Не у верен, что это правильно. Хотя?!
Роман
29 апреля 2016, 16:58
modx.pro
1 351
0

Комментарии: 17

Илья Уткин
29 апреля 2016, 20:15
1
+1
Так сделайте сниппет
[[!getTV? &name=`TV1`]]

return $modx->resource->getTVValue($name);
    Роман
    29 апреля 2016, 20:38
    0
    Илья, спасибо за совет. А штука со знаком восклицания с TV не прокатывает? [[!*TV]]
    Alex
    25 января 2017, 15:28
    0
    Илья, не работает
    Роман
    29 апреля 2016, 21:06
    0
    В общем, получается, что либо чистить кеш при каждой смене значения TV на странице, либо делать вызов TV через свой сниппет.

    Почистить кеш — одна строка в коде, но, наверное, кушает сколько-то ресурсов.
    Написать +1 сниппет не проблема, но как-то нелогично.

    clearCash() — много ресурсов кушает?
      Воеводский Михаил
      29 апреля 2016, 21:34
      +1
      Очистка кэша не слишком много ресурсов съест, но последующее его набивание намного более ресурсоемкое.
        Роман
        29 апреля 2016, 21:49
        0
        Спасибо. Понял. Значит, наш выбор — +1 сниппет :-)
    Роман
    30 апреля 2016, 08:34
    0
    Сниппет не помог, что странно. Тогда вопрос исчерпан: чистим кеш и не паримся :-)
      Сергей Шлоков
      30 апреля 2016, 12:11
      +1
      Ничего странного. И очистка кэша не поможет.
        Роман
        30 апреля 2016, 21:21
        0
        почему не поможет. Уже помогает. Всё работает
          Сергей Шлоков
          30 апреля 2016, 22:21
          0
          1. Браузер запрашивает страницу отправляя запрос на сервер.
          2. MODX формирует страницу — шаблон, чанки, спиппеты, плейсхолдеры, ТВшки. Дальше отдает назад браузеру.
          3. Браузер, получив ответ, отрисовывает страницу. По готовности DOM модели или по кнопке браузер выполняет ajax запрос, который что-то меняет на сервере.
          Вопрос, как измененные данные на сервере должны измениться в браузере (без яваскрипта)?
          Я видимо чего-то не понимаю.
          Кроме того
          Если снять галочку «Кешируемый ресурс», то всё нормально работает. Но, ради пары динамичных цифр на странице убирать её всю из кеша — нелогично.
          А вызывать метод чистки кэша при каждом запросе — это логично?
            Роман
            30 апреля 2016, 22:42
            0
            а-а-а, я понял в чем возникла непонятка. Я виноват, неверно объяснил вводную.

            Данные с помощью ajax ушли на сервер, вернулись, javascript'ом вставились куда надо. Всё хорошо. Дальше, жму F5 или перехожу на другую страницу, а потом возвращаюсь. Данные берутся из кеша, т.е. те, которые были до манипуляций с ajax. В этом и была загвоздка, что вроде должны опять обработаться сервером, потом отобразиться браузером… т.е. Ваши пункты 1,2,3, но всё было не так как надо :-)

            Поэтому, когда после ajax'а данные ушли на сервер, там обработались (+почистился кеш страницы), потом вернулись и вставились, жмем F5 и у нас грузится страница с нормальными данными.
              Konstantin
              01 мая 2016, 14:10
              0
              не кеш ли это браузера?
                Роман
                01 мая 2016, 17:04
                0
                Shift + F5 тоже не прокатывает
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      17