Как кешировать фильтры?

Сразу хочу отметить, что речь не идет конкретно о modx и msearch2, вопрос в целом — об идеях, реализациях, опыте коллег.
Что собственно смущает.
К примеру есть страница, на которой условные товары. Есть фильтр с набором характеристик, к примеру есть
Размер
— s
— m
— x

Цвет
— белый
— черный
— красный

Бренд
— 1
— 2
-3
Какие варианты работы фильтра я вижу:
1) Вариант без кеширования. Любое изменение фильтра вызывает запрос на сервер, который вернет данные, соответствующие фильтру.
2) Кеширование первым пользователем. Когда пользователь что то выбрал в фильтре, отправляется запрос, получаются данные, кешируются. Когда этот же иди другой пользователь накликает в фильтре такую же комбинацию, данные будут отданы из кеша.
3) Полное предварительное кеширование. Кеш всех комбинаций фильтра готовиться заранее и даже первый клиент получает уже ответ из кеша.

Какие проблемы и недопонимания эти варианты вызывают:
1) С первым все более менее понятно. Будет работать, но если количество характеристик постоянно растет (на некоторых проектах у меня менеджеры вывели в фильтр уже 170 типов характеристик и у каждого типа не менее 10 значений) то «тормоза» неизбежны, как ты не оптимизируй и не используй индексы в базе.
2) Второй вариант лично мне кажется бесперспективным. Хотя по моему именно так кешируются большинство фильтров.
Александр Мельник
26 января 2022, 10:10
modx.pro
633
0

Разработка веб приложений. #2 - Backend, Express.

Первая статья — здесь.

Для начала — большое спасибо всем за то что приняли мою первую статью, было приятно. Ну а теперь вторая… :)

Frontend разработка штука конечно занятная и очень интересная, да и платят вкусно. Однако чем были хороши WP и MODx, так это готовой backend частью, на базе которой можно было на коленке собрать сайт почти любого типа. Мне очень не хотелось возвращаться к использованию CMS (про CMS будет в одной из следующих статей) и я решил внимательно изучить тренды backend индустрии для веб-приложений.
iWatchYouFromAfar
25 января 2022, 22:20
modx.pro
1
3 131
+20

Скорость работы msMiniCartDynamic

Добрый день. Использую плагин msMiniCartDynamic и если быстро добавлять товары, то запросы не успевают обрабатываться. Нужно чтобы товар моментально залетал в корзину. Как это сделать? Возможно как-то доработать плагин или дописать функционал, если знаете как — поделитесь, пожалуйста. Буду благодарен любой помощи или совету.
Олег
25 января 2022, 11:59
modx.pro
541
0

Некорректно работает If else

Здравствуйте. Через multiTv вывожу слайдер. Все работает, но для первого слайда нужно задать некий инлайн стиль. Я попробовал тренироваться на имени класса, но че-то не работает.
Если вот такое условие
[![if? &is=`[+iteration+]:=:1` &then=`true` &else=`false`]!]
то все работает но появляются лишние скобки
<div class="first  light-bg theme_banner-slider-inner bg-cover bg-center bg-norepeat dark-overlay [true]" style="background-image: url('assets/images/2.jpg');">
А если делать как в мануале
[!if? &is=`[+iteration+]:=:1` &then=`true` &else=`false`!]
то условие не срабатывает и выводит всегда false.

Просто голову сломал почему так. Да, я знаю что для первого элемента стоит класс first но мне в данном случае нужно именно по условию (в т.ч. и для последствующих целей)
shalom
25 января 2022, 11:37
modx.pro
718
0

Обращение к MODx через nodejs

Добрый день.
Изучаю nodejs и возникла необходимость обратиться к MODx — авторизован ли текущий пользователь.
1. Нода и MODx находятся на одном сервере (nginx)
2. Данные об авторизации пользователя нужно получить до загрузки страницы, соответственно нужно это делать на стороне сервера без сокетов.
3. Возможно в этом случае нужно обращаться к кукам?

Если у кого-то есть опыт в этом плане поделитесь, пожалуйста!
Сергей
25 января 2022, 09:06
modx.pro
603
0

msOrder запретить редиректит

Добрый день! Подскажите, как после оформления заказа никуда не перебрасывать страницу? Чтобы не происходил никакой редирект
Анастасия
24 января 2022, 18:42
modx.pro
666
0

docker & modx: долгое время ответа сервера

Маюри Шиина
24 января 2022, 17:13
modx.pro
961
0

[miniShop2] Добавляем свои поля в заказ в админке

Бывает необходимость расширить таблицу заказов miniShop2. Можно легко это сделать с помощью несложных действий.
Klike
24 января 2022, 14:59
modx.pro
5
2 011
+8

SimpleSearch - отсутствие результатов

Здравствуйте, товарищи, кто-нибудь сталкивался с проблемой, что SimpleSearch не находит страницы даже по pagetitle? Часть страниц находит, часть нет. Сначала подумал что он не может найти страницы которые лежат внутри Collections, но создал новую — тоже «нет результатов», вызовы копировал с сайта где все работает, результат тот же.
Modx 2.8.1
SimpleSearch 2.1.2
Вызов формы:
<div id="form-search" class="form-overlay">
	<div class="popup-form">
		<div class="close"></div>
			<div class="form-title">Введите запрос для поиска</div>
			[[!SimpleSearchForm? &landing=`232` &tpl=`search.tpl`]] 
	</div>
</div>
Чанк формы:
<form class="sisea-search-form" role="search" id="searchform" action="[[~[[+landing:default=`[[*id]]`]]]]" method="[[+method:default=`get`]]">
  <fieldset>
    <label for="[[+searchIndex]]"></label>
    <input type="text" name="[[+searchIndex]]" name="[[+searchIndex]]" id="[[+searchIndex]]" placeholder="Искать" value="[[+searchValue]]" autocomplete="off" />
    <input type="hidden" name="id" value="[[+landing:default=[[*id]]]]" />
    <input type="submit" value="Поиск" />
  </fieldset>
</form>
<div id="site-search-results" class="site-search-results"></div>
Страница с результатами (ID 232) пробовал и просто вызов сниппета, и с параметрами, и с явным указанием полей, везде один результат.
[[!SimpleSearch? 
										&includeTVs=`1`
									  &processTVs=`1`
										&hideMenu=`2`
										&depth=`20`
									]]



Arahort
24 января 2022, 14:23
modx.pro
668
0

Фильтрация по умолчанию по полю "Переключатели (radio)"

Здравствуйте. Подскажите как сделать фильтр по умолчанию по выводу товаров по полю Переключатели (radio) если выбрана например пункт 2 то он в начале
Mishiko
22 января 2022, 20:29
modx.pro
461
0