Давайте соберем список медленных мест в CS-Cart, требующих внесения изменений в коробке?


#1
  1. Кнопка “В корзину”, вместо мгновенной реакции в интерфейсе как в большинстве CMS из коробки отрабатывает долго. Предложение - оставить нынешнее поведение в качестве альтернативного, добавить вариант мгновенной реакции интерфейса, без каких-либо попапов, с отработкой на стороне браузера и фоновой передачей данных на сервер.
  2. Дашборд в админке. Долго что-то там рассчитывает. Предложение: сделать настраиваемым пользователем вывод параметров и показывать время выполнения расчетов(чтобы человек мог понять что именно ему не настолько требуется чтобы столько ждать).
  3. Список товаров. Переделать запрос вывода - тормоза есть даже при каталоге в 30к товаров, а если в таблице products товаров много(а их создают и вариации и Общие товары продавцов в MVP, да и просто MV редакция предполагает загрузку каталогов вендоров, где далеко не по 100 товаров). Пагинацию можно видоизменить. Она вообще так уж и сильно важна там, при первоначальном открытии уж точно - при большом числе товаров никто открыв общий список не начнет пытаться пролистать пару сотен страниц чтобы найти нужный товар.
  4. Страница фильтров. Зачем-то опрашиваются список вариантов всех характеристик при открытии списка. Зачем нужно - не понятно, при том что никак не используется. Приводит к тормозам. @MAURISWEB.RU тут описал решение - вполне корректно работает и убирает тормоза.
  5. Стандартные блоки на главной. Хорошая идея создать динамические блоки, проблема в том что на работающем магазине они всегда работают без кеша и приводят к тормозам. Например, если у меня добавить коробочный блок “Новинки в магазине”, SQL-запрос в этом блоке выполняется 6 секунд на очень быстром сервере. С самими запросами там ничего не сделать наверное, но пригодилось бы какое-то решение с кешированием, возможно выполняемым по расписанию. Новичкам ведь совсем не понятно, от чего у них тормозит главная.
  6. Кнопка оформления заказа. Не знаю, что там конкретно сайт делает в этот момент(похоже, много что), но судя по всему там есть много что можно оптимизировать. Потому как работает она еще дольше, чем кнопка “В корзину”(тут понятно что мгновенно никак, но явно сейчас долговато).

Это то что вспомнилось сразу. Надеюсь, этот список сейчас дополнят.


#2

для списка товаров есть беда с фильтрами

для расширенного поиска беруться все фильтры. даже если их тысячи, для характеристик предусмотрено отключения поиска по ним если их много, а по фильтрам нет


#3

А меня жутко убивает огромный dom


Гугл даже, чтобы не ругаться, пишет НЕ ЧИСЛО =} хотя выше выводить 1560 и это обычная ком демка, на респонив, у Юни чуть лучше, это тормозит именно саму плавность работы с магазином.


#4

У нас уйма микроформатов и скриптов с привязкой к селекторам, а вот тут и приходят тормоза: многое зависит от “тяжести” кода скриптов, где заложен обход дерева DOM
Если в скрипте очень много обращений к множеству селекторов узлов то он может тормозить и на 1000 и менее узлах


#5

@redrikshukhart браво!
@imac @cs-cart_team обратите внимание пожалуйста!


#6

поставьте плиз ссылку на Тут, не могу найте его решение


#7

Кнопка оформления заказа. Не знаю, что там конкретно сайт делает в этот момент(похоже, много что), но судя по всему там есть много что можно оптимизировать. Потому как работает она еще дольше, чем кнопка “В корзину”(тут понятно что мгновенно никак, но явно сейчас долговато).

Пытается отправить уведомление на почту. Отключи уведомления – увидишь, что заказ оформится моментально.
Поэтому я модулем пользуюсь https://store.cart-power.ru/cs-cart-sending-mail-with-delay-add-on.html, чтоб сделать задержку 1 минуту на отправку писем.


#8

тут


#9

А метод отправки писем у вас как?


#10

ну так вот, что помимо модулей сторонних, многое в ядре лежит и в итоге, если захочешь решить это сам, нужно не только переписать логику tpl и формирование его, так еще с js потанцевать придется больше чем уверен, и про обновления можно забыть, шутка про давайте создадим параллельную версию cs-cart с пометкой форум, станет более реальной.


#11

SMTP, яндексовская почта. Думаю тут как раз и затык, пока идет авторизация – будет крутиться спиннер “Идет оформление заказа”.
Как быстро оформляется, например, через php-mail или sendmail – не проверял, возможно быстрее.


#12

PHP-Mail без всяких задержек


#13

и без гарантий доставки, и многого чего в принципе, это очень не корректный метод который можно использовать когда у вас либо 100% уверенность в корректной настройке сервера, его авторитетности, ну либо вам просто побоку на то будет ли доставлено письмо.


#14
  1. импорт не тащит даже для средних обменов, а для более-менее крупных нужны гигабайты оперативки
  2. генерация YML-лей занимает минуты, у некоторых клиентов до правок в коде этот процесс на старых хостингах вообще мог пол часа занимать, после переноса в основном около 5-ти минут, но это в принципе задача которую сервер может делать на лету и за пару секунд а не с такими таймингами.

#15

Кстати, у меня на MVP(общие товары продавцов) и очень производительном сервере Захидов перестал работать sitemap.xml - просто перестал переваривать число страниц.


#16

В MVP характеристики товаров, как и многие другие значения дублируются при создании дочерних карточек товаров. В моём случае число характеристик умножается на число вендоров добавивших себе товары. Конструкция не внушает оптимизма с точки зрения перспектив - вроде карточек товаров всего-ничего, 28к, а в таблице cscart_product_features_values 41733504 записей. А число вендоров хотелось бы увеличить еще раз в 20 минимум. Такое и в других таблицах наблюдается - это явно не про производительность. Особенно во время включения товаров и их удаления - происходит что-то страшное. Попытка удаления пары десятков товаров которые добавлены в продажу у вендоров стабильно кладет сайт.