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

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

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

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

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

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

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

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

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

Наумов Алексей
05 сентября 2023, 09:58
0
Попробовать:
1. отключить suggestions и посмотреть время
2. временно убрать почти все фильтры (оставить 1-2) и посмотреть время
2. покажите чанк с товаром, может там чего?
    Maks
    05 сентября 2023, 10:44
    0
    <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
      0
      Ну у вас прям навороченный чанк…
      Во-первых избавляйтесь от phpthumbon.
      Во-вторых уберите встроенный синтаксис modX (с прямоугольными скобками который).
      Если у вас выводится на странице много товаров — стоит попробовать вместо вызова ecThreadRating делать join таблицы чтобы получать рейтинг товара.

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

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

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


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