Как Увеличить скорость работы сайта

Всем доброго времени суток. Очень надеюсь на помощь людей которые занимались оптимизацией скорости работы сайта на modx.

Что имеем.
MODX Revolution 2.8.5
Minishop2 последняя версия

Фильтрация работает через mfilter2

Имеет категория товаров на ней с помощью плагина debugparser смотрим скорость отдачи страницы
333
Другая категория выглядит вот так
234

Все перевел на fenom и на файлы. Но скорость все равно оставляет желать лучше.

Товаров всего около 7к на двух языках.

Подскажите что можно сделать для увеличения скорости работы сайта. Спасибо.
Maks
Maks
05 сентября 2023, 06:02
modx.pro
1 849
Реклама

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

Наумов Алексей
Наумов Алексей Администратор
05 сентября 2023, 09:58
Попробовать:
1. отключить suggestions и посмотреть время
2. временно убрать почти все фильтры (оставить 1-2) и посмотреть время
2. покажите чанк с товаром, может там чего?
    Maks
    Maks Старожил
    05 сентября 2023, 10:44
    <div class="ms2_product col-6 col-sm-6 col-md-4 mb-3 px-2">
                  <div class="product text-center">
                      {var $productimage = 'phpthumbon' | snippet : ['input' => $_pls['$thumb'],  'options' => 'h=200&f=jpg&bg=ffffff']}
                      {var $productimagewebp = 'phpthumbon' | snippet : ['input' => $_pls['$thumb'],  'options' => 'h=200&f=webp&bg=ffffff']}
     [[!addComparison?
      &list_id=`15`
      &id=`[[+id]]`
    ]]                                           
                    <a href="{$uri}" class="clr3" title="{$_modx->resource.pagetitle} {$pagetitle}">
                     
                        <picture>
                            <source srcset="{$thumb}" type="image/webp">
                            <source srcset="{$thumb}" type="image/jpg">
                            <img src="{$thumb}" alt="{$_modx->resource.pagetitle} {$pagetitle}" title="{$_modx->resource.pagetitle} {$pagetitle}" class="lazy img-fluid">
                        </picture>
    
                        
     <div class="flags ">
                        {if $new?}
                            <span class="badge badge-secondarynew  badge-pill mr-md-1">{'ms2_frontend_new' | lexicon}</span>
                        {/if}
                        {if $popular?}
                            <span class="badge badge-secondarytop badge-pill mr-md-1">{'ms2_frontend_popular' | lexicon}</span>
                        {/if}
                        {if $favorite?}
                            <span class="badge badge-secondaryfav badge-pill mr-md-1"> {'ms2_frontend_favorite' | lexicon}</span>
                        {/if}
                        {if $sklad?}
                            <span class="badge badge-secondarysklad badge-pill mr-md-1"> {'ms2_frontend_sklad' | lexicon}</span>
                        {/if}                    
                    </div>                      
                        
                    </a>
                                   
                    <div class="product-info">
                      <p class="font-weight-bold text-uppercase h4">
                          <a href="{$uri}" class="clr3" title="{$_modx->resource.pagetitle} {$pagetitle}"> 
    [[+titletovar:ifempty=`[[+pagetitle]]`]]                  
                          </a></p>
                        [[!ecThreadRating?
                        	&thread=`resource-[[+id]]`
                        	&tpl=`RatingTovar`
                        ]]  
    
                      	  {$_modx->runSnippet('msOptions', [
                    		'product' => $id,
                    		'options' => 'tags',
                    		'tpl' => '@FILE chunks/catalog/ProductOptions.tpl',
                    	  ])}                       
                      	  {$_modx->runSnippet('msOptions', [
                    		'product' => $id,
                    		'options' => 'brand,made_in,available',
                    		'tpl' => '@FILE chunks/catalog/msOptionsTags.tpl',
                    	  ])}
                    
                        {if $old_price?}
                            <img src="assets/img/icons/promo-badge.svg" alt="Иконка Акции" width="40" height="40" loading="lazy" class="promobadge">
                            <span class="old_price ml-md-3"><del>{$old_price} {'ms2_frontend_currency' | lexicon}</del></span>
                        {/if}                  
                      <p class="price clr1 font-weight-bold">
                       [[+price:is=`0`:then=`[[*context_key:is=`web`:then=`Цена по запросу`:else=`Ціна за запитом`]] `:else=`{$price} {'ms2_frontend_currency' | lexicon}`]]  
                      </p>
    
            
                      <a href="{$uri}" class="product-link" title="{$_modx->resource.pagetitle} {$pagetitle}">{'ms2_frontend_add_to_cart' | lexicon}</a>
     
    
            
                    </div>
                  </div>
                </div>
    Чанк
      Наумов Алексей
      Наумов Алексей Администратор
      05 сентября 2023, 10:54
      Ну у вас прям навороченный чанк…
      Во-первых избавляйтесь от phpthumbon.
      Во-вторых уберите встроенный синтаксис modX (с прямоугольными скобками который).
      Если у вас выводится на странице много товаров — стоит попробовать вместо вызова ecThreadRating делать join таблицы чтобы получать рейтинг товара.

      Два вызова msOptions тоже… может как-то упростить?
        Maks
        Maks Старожил
        05 сентября 2023, 13:52
        Во-первых избавляйтесь от phpthumbon.
        Чем посоветуете заменить?

        Если у вас выводится на странице много товаров — стоит попробовать вместо вызова ecThreadRating делать join таблицы чтобы получать рейтинг товара.
        Если не трудно покажите как это сделать?
          Наумов Алексей
          Наумов Алексей Администратор
          05 сентября 2023, 15:10
          1. нагенерируйте нужные превью, указав их в источнике файлов miniShop2
          2. см. доки docs.modx.pro/components/easycomm/rating-in-pdoresources-and-msproducts
            Maks
            Maks Старожил
            05 сентября 2023, 19:01
            Вывожу таким образом рейтинг
            {'ecThreadRating' | snippet : [
                                  'tpl' => 'RatingTovar',                     
                                  'thread' => 'resource' ~ $id,
                                ]}

            Как в документации и получаю просто звезды пустые. Как будто голосов нет. При этом выше вызов
            [[!ecThreadRating?
                                	&thread=`resource-[[+id]]`
                                	&tpl=`RatingTovar`
                                ]]


            Показывает звезды там где есть голоса.
              Наумов Алексей
              Наумов Алексей Администратор
              06 сентября 2023, 08:27
              В параметре thread рядом с resource потерян дефис:
              'resource-' ~ $id
                Maks
                Maks Старожил
                06 сентября 2023, 12:42
                Спасибо. Вызов взят кстати из документации.
                  Наумов Алексей
                  Наумов Алексей Администратор
                  06 сентября 2023, 14:28
                  значит там опечатка)))
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    9