Как кешировать фильтры?
Сразу хочу отметить, что речь не идет конкретно о modx и msearch2, вопрос в целом — об идеях, реализациях, опыте коллег.
Что собственно смущает.
К примеру есть страница, на которой условные товары. Есть фильтр с набором характеристик, к примеру есть
Размер
— s
— m
— x
Цвет
— белый
— черный
— красный
Бренд
— 1
— 2
-3
Какие варианты работы фильтра я вижу:
1) Вариант без кеширования. Любое изменение фильтра вызывает запрос на сервер, который вернет данные, соответствующие фильтру.
2) Кеширование первым пользователем. Когда пользователь что то выбрал в фильтре, отправляется запрос, получаются данные, кешируются. Когда этот же иди другой пользователь накликает в фильтре такую же комбинацию, данные будут отданы из кеша.
3) Полное предварительное кеширование. Кеш всех комбинаций фильтра готовиться заранее и даже первый клиент получает уже ответ из кеша.
Какие проблемы и недопонимания эти варианты вызывают:
1) С первым все более менее понятно. Будет работать, но если количество характеристик постоянно растет (на некоторых проектах у меня менеджеры вывели в фильтр уже 170 типов характеристик и у каждого типа не менее 10 значений) то «тормоза» неизбежны, как ты не оптимизируй и не используй индексы в базе.
2) Второй вариант лично мне кажется бесперспективным. Хотя по моему именно так кешируются большинство фильтров.
Что собственно смущает.
К примеру есть страница, на которой условные товары. Есть фильтр с набором характеристик, к примеру есть
Размер
— s
— m
— x
Цвет
— белый
— черный
— красный
Бренд
— 1
— 2
-3
Какие варианты работы фильтра я вижу:
1) Вариант без кеширования. Любое изменение фильтра вызывает запрос на сервер, который вернет данные, соответствующие фильтру.
2) Кеширование первым пользователем. Когда пользователь что то выбрал в фильтре, отправляется запрос, получаются данные, кешируются. Когда этот же иди другой пользователь накликает в фильтре такую же комбинацию, данные будут отданы из кеша.
3) Полное предварительное кеширование. Кеш всех комбинаций фильтра готовиться заранее и даже первый клиент получает уже ответ из кеша.
Какие проблемы и недопонимания эти варианты вызывают:
1) С первым все более менее понятно. Будет работать, но если количество характеристик постоянно растет (на некоторых проектах у меня менеджеры вывели в фильтр уже 170 типов характеристик и у каждого типа не менее 10 значений) то «тормоза» неизбежны, как ты не оптимизируй и не используй индексы в базе.
2) Второй вариант лично мне кажется бесперспективным. Хотя по моему именно так кешируются большинство фильтров.
Разработка веб приложений. #2 - Backend, Express.
Первая статья — здесь.
Для начала — большое спасибо всем за то что приняли мою первую статью, было приятно. Ну а теперь вторая… :)
Frontend разработка штука конечно занятная и очень интересная, да и платят вкусно. Однако чем были хороши WP и MODx, так это готовой backend частью, на базе которой можно было на коленке собрать сайт почти любого типа. Мне очень не хотелось возвращаться к использованию CMS (про CMS будет в одной из следующих статей) и я решил внимательно изучить тренды backend индустрии для веб-приложений.
Для начала — большое спасибо всем за то что приняли мою первую статью, было приятно. Ну а теперь вторая… :)
Frontend разработка штука конечно занятная и очень интересная, да и платят вкусно. Однако чем были хороши WP и MODx, так это готовой backend частью, на базе которой можно было на коленке собрать сайт почти любого типа. Мне очень не хотелось возвращаться к использованию CMS (про CMS будет в одной из следующих статей) и я решил внимательно изучить тренды backend индустрии для веб-приложений.
Скорость работы msMiniCartDynamic
Добрый день. Использую плагин msMiniCartDynamic и если быстро добавлять товары, то запросы не успевают обрабатываться. Нужно чтобы товар моментально залетал в корзину. Как это сделать? Возможно как-то доработать плагин или дописать функционал, если знаете как — поделитесь, пожалуйста. Буду благодарен любой помощи или совету.
Некорректно работает If else
Здравствуйте. Через multiTv вывожу слайдер. Все работает, но для первого слайда нужно задать некий инлайн стиль. Я попробовал тренироваться на имени класса, но че-то не работает.
Если вот такое условие
Просто голову сломал почему так. Да, я знаю что для первого элемента стоит класс first но мне в данном случае нужно именно по условию (в т.ч. и для последствующих целей)
Если вот такое условие
[![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 но мне в данном случае нужно именно по условию (в т.ч. и для последствующих целей)
Обращение к MODx через nodejs
Добрый день.
Изучаю nodejs и возникла необходимость обратиться к MODx — авторизован ли текущий пользователь.
1. Нода и MODx находятся на одном сервере (nginx)
2. Данные об авторизации пользователя нужно получить до загрузки страницы, соответственно нужно это делать на стороне сервера без сокетов.
3. Возможно в этом случае нужно обращаться к кукам?
Если у кого-то есть опыт в этом плане поделитесь, пожалуйста!
Изучаю nodejs и возникла необходимость обратиться к MODx — авторизован ли текущий пользователь.
1. Нода и MODx находятся на одном сервере (nginx)
2. Данные об авторизации пользователя нужно получить до загрузки страницы, соответственно нужно это делать на стороне сервера без сокетов.
3. Возможно в этом случае нужно обращаться к кукам?
Если у кого-то есть опыт в этом плане поделитесь, пожалуйста!
msOrder запретить редиректит
Добрый день! Подскажите, как после оформления заказа никуда не перебрасывать страницу? Чтобы не происходил никакой редирект
[miniShop2] Добавляем свои поля в заказ в админке
Бывает необходимость расширить таблицу заказов miniShop2. Можно легко это сделать с помощью несложных действий.
SimpleSearch - отсутствие результатов
Здравствуйте, товарищи, кто-нибудь сталкивался с проблемой, что SimpleSearch не находит страницы даже по pagetitle? Часть страниц находит, часть нет. Сначала подумал что он не может найти страницы которые лежат внутри Collections, но создал новую — тоже «нет результатов», вызовы копировал с сайта где все работает, результат тот же.
Modx 2.8.1
SimpleSearch 2.1.2
Вызов формы:
![](https://file.modx.pro/files/d/9/7/d977e6a5b01e6d78e0c8f7455b47e1c0.png)
![](https://file.modx.pro/files/8/d/0/8d05408761957044eba39860f63d28b7.png)
![](https://file.modx.pro/files/8/9/9/89930e2d38503e5918bf42fc2e1c6781.png)
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`
]]
![](https://file.modx.pro/files/d/9/7/d977e6a5b01e6d78e0c8f7455b47e1c0.png)
![](https://file.modx.pro/files/8/d/0/8d05408761957044eba39860f63d28b7.png)
![](https://file.modx.pro/files/8/9/9/89930e2d38503e5918bf42fc2e1c6781.png)
![](https://file.modx.pro/files/f/3/1/f31e88aa1b5a5737844c704a442cd6fc.png)
Фильтрация по умолчанию по полю "Переключатели (radio)"
Здравствуйте. Подскажите как сделать фильтр по умолчанию по выводу товаров по полю Переключатели (radio) если выбрана например пункт 2 то он в начале