Финансовая поддержка VPS, бесплатные дополнения и docs Донаты оплачивают сервер и двигают бесплатные дополнения MODX и документацию. Поддержать

Всего 126 145 комментариев

Василий Наумкин
Василий Наумкин
Ладно, хрен с ним, с рендером чанков, пусть будет 2 секунды. Но почему разница между работой msProducts и выводом всей страницы еще 3 секунды?

Фигня какая-то. Я бы попробовал поставить чистый сайт и аккуратно перенести на него всё, что нужно, замеряя скорость после каждого изменения.
Олег Ракул
Олег Ракул
почему думаю не про хостинг, у заказчика он свой — там понятно могут быть проблемы
но попробовал запустить сайт на этом
sweb.ru/

на котором уже давно работаю, картина та же, сайты modx уже были правда без минишопа, но и с каталогами в том числе, так что что нужно modx от хоста я в курсе
Олег Ракул
Олег Ракул
0.0000529: pdoTools loaded.
0.0125270: "Where" expression built.
0.0046480: Query parameters are prepared.
0.0001540: xPDO query object created
0.0007241: Added where condition: class_key=msProduct, published=1, hidemenu=0, deleted=0
0.0006208: leftJoined msProductData as Data
0.0005200: leftJoined msVendor as Vendor
0.0000210: Grouped by msProduct.id
0.0001612: Added selection of msProduct: SQL_CALC_FOUND_ROWS `msProduct`.`id`, `msProduct`.`type`, `msProduct`.`contentType`, `msProduct`.`pagetitle`, `msProduct`.`longtitle`, `msProduct`.`description`, `msProduct`.`alias`, `msProduct`.`link_attributes`, `msProduct`.`published`, `msProduct`.`pub_date`, `msProduct`.`unpub_date`, `msProduct`.`parent`, `msProduct`.`isfolder`, `msProduct`.`introtext`, `msProduct`.`richtext`, `msProduct`.`template`, `msProduct`.`menuindex`, `msProduct`.`searchable`, `msProduct`.`cacheable`, `msProduct`.`createdby`, `msProduct`.`createdon`, `msProduct`.`editedby`, `msProduct`.`editedon`, `msProduct`.`deleted`, `msProduct`.`deletedon`, `msProduct`.`deletedby`, `msProduct`.`publishedon`, `msProduct`.`publishedby`, `msProduct`.`menutitle`, `msProduct`.`donthit`, `msProduct`.`privateweb`, `msProduct`.`privatemgr`, `msProduct`.`content_dispo`, `msProduct`.`hidemenu`, `msProduct`.`class_key`, `msProduct`.`context_key`, `msProduct`.`content_type`, `msProduct`.`uri`, `msProduct`.`uri_override`, `msProduct`.`hide_children_in_tree`, `msProduct`.`show_in_tree`, `msProduct`.`properties`
0.0000730: Added selection of Data: `Data`.`article`, `Data`.`price`, `Data`.`old_price`, `Data`.`weight`, `Data`.`image`, `Data`.`thumb`, `Data`.`vendor`, `Data`.`made_in`, `Data`.`new`, `Data`.`popular`, `Data`.`favorite`, `Data`.`tags`, `Data`.`color`, `Data`.`size`, `Data`.`source`
0.0000620: Added selection of Vendor: `Vendor`.`name` AS `vendor.name`, `Vendor`.`resource` AS `vendor.resource`, `Vendor`.`country` AS `vendor.country`, `Vendor`.`logo` AS `vendor.logo`, `Vendor`.`address` AS `vendor.address`, `Vendor`.`phone` AS `vendor.phone`, `Vendor`.`fax` AS `vendor.fax`, `Vendor`.`email` AS `vendor.email`, `Vendor`.`description` AS `vendor.description`, `Vendor`.`properties` AS `vendor.properties`
0.0000260: Sorted by id, ASC. Limited to 50, offset 0
0.0011611: SQL prepared "SELECT SQL_CALC_FOUND_ROWS `msProduct`.`id`, `msProduct`.`type`, `msProduct`.`contentType`, `msProduct`.`pagetitle`, `msProduct`.`longtitle`, `msProduct`.`description`, `msProduct`.`alias`, `msProduct`.`link_attributes`, `msProduct`.`published`, `msProduct`.`pub_date`, `msProduct`.`unpub_date`, `msProduct`.`parent`, `msProduct`.`isfolder`, `msProduct`.`introtext`, `msProduct`.`richtext`, `msProduct`.`template`, `msProduct`.`menuindex`, `msProduct`.`searchable`, `msProduct`.`cacheable`, `msProduct`.`createdby`, `msProduct`.`createdon`, `msProduct`.`editedby`, `msProduct`.`editedon`, `msProduct`.`deleted`, `msProduct`.`deletedon`, `msProduct`.`deletedby`, `msProduct`.`publishedon`, `msProduct`.`publishedby`, `msProduct`.`menutitle`, `msProduct`.`donthit`, `msProduct`.`privateweb`, `msProduct`.`privatemgr`, `msProduct`.`content_dispo`, `msProduct`.`hidemenu`, `msProduct`.`class_key`, `msProduct`.`context_key`, `msProduct`.`content_type`, `msProduct`.`uri`, `msProduct`.`uri_override`, `msProduct`.`hide_children_in_tree`, `msProduct`.`show_in_tree`, `msProduct`.`properties`, `Data`.`article`, `Data`.`price`, `Data`.`old_price`, `Data`.`weight`, `Data`.`image`, `Data`.`thumb`, `Data`.`vendor`, `Data`.`made_in`, `Data`.`new`, `Data`.`popular`, `Data`.`favorite`, `Data`.`tags`, `Data`.`color`, `Data`.`size`, `Data`.`source`, `Vendor`.`name` AS `vendor.name`, `Vendor`.`resource` AS `vendor.resource`, `Vendor`.`country` AS `vendor.country`, `Vendor`.`logo` AS `vendor.logo`, `Vendor`.`address` AS `vendor.address`, `Vendor`.`phone` AS `vendor.phone`, `Vendor`.`fax` AS `vendor.fax`, `Vendor`.`email` AS `vendor.email`, `Vendor`.`description` AS `vendor.description`, `Vendor`.`properties` AS `vendor.properties` FROM `modx_site_content` AS `msProduct` LEFT JOIN `modx_ms2_products` `Data` ON `msProduct`.`id`=`Data`.`id` LEFT JOIN `modx_ms2_vendors` `Vendor` ON `Data`.`vendor`=`Vendor`.`id` WHERE  ( `msProduct`.`class_key` = 'msProduct' AND `msProduct`.`published` = 1 AND `msProduct`.`hidemenu` = 0 AND `msProduct`.`deleted` = 0 )  GROUP BY msProduct.id ORDER BY id ASC LIMIT 50 "
0.0331900: SQL executed
0.0002170: Total rows: 321
0.0018120: Rows fetched
0.0000119: Returning raw data
1.9681950: Returning processed chunks
2.0241770: Total time
5,1318 s
ничего не поменялось, дело не в шаблоне
и видимо не в msProducts, getResources тормознее но выдает похожую картину
что-то в движке, вопрос с магазина снят -(
Василий Наумкин
Василий Наумкин
Не всё внутри шаблона, а шаблон для страницы поставить в 0. Тогда будет работать исключительно контент, с вызовом.

Создай новую страницу, укажи нулевой шаблон и вставь вот этот код:
[[!getPage?
	&element=`msProducts`
	&parents=`0`
	&limit=`50`
	&showLog=`1`
]]
[^t^]
Ну и скопируй сюда время выборки сниппета и время рендера страницы, в самом низу.
Peter Zenin
Peter Zenin
Разобрался вроде.

Положил свой тестовый файл файл в папку /assets/images/petja777.jpg

id продукта, которому добавить картинку с загрузкой и созданием всех иконок = 4 ('id' => 4)

$processorPath = MODX_CORE_PATH . 'components/minishop2/convert/ms1/processors/';

$file = array(
    'id' => 4,
    'name' => 'petja777.jpg',
    'file' => MODX_ASSETS_PATH. 'images/petja777.jpg',
);

require $processorPath . '/config.inc.php';

$response = $modx->runProcessor('gallery/upload', $file, array('processors_path' => $processorPath));
Олег Ракул
Олег Ракул
провел вообще супер чистый тест, оставил на странице вот этот вызов и ничего кроме
[[!getPage@getpage_minishop2? &element=`msProducts` &tpl=`Product-Category` &limit=`10` &depth=`2`]]
работает быстрее конечно, но на большом количестве товаров, если поставить limit=`50` например все равно подтормаживает

загвоздка в том, что когда пытаешься вставить ?limit=`0` через адресную строку или в самом вызове, чтобы вывести все товары — происходит как раз вечный вызов. На сайте пока всего около 70 товаров максимум. Поставил limit=`80`, медленно но выводит и хотя бы не виснет на вечно, как в случае с limit=`0`.

тут что-то с msProducts, он как раз на странице товара тоже вызывается, чтобы вывести сопутствующие
версия Версия 2.0.0 pl2, но я пока не обновлялся до крупного т.к. жду стабильной новой версии, просто не видел каких-то кардинальных изменений msProducts, хотя может в версии дело?
подскажите, уже не знаю куда копать все варианты на исходе
Мордынский Николай
Мордынский Николай
есть какие нибудь вызовы сниппетов которых не существует или что то подобное?

Ешкин кот проверил в гугл хром консоле нетворк — долго отдаются js скрипты и css страницы в них проблемма вроде как… сумарно около 3 секунд жрут
Олег Ракул
Олег Ракул
и не в wayfinder дело убираю дерево навигации по категориям, ничего не меняется
рекурсивных вызовов точно нет, вообще убираю все проверки и вилки скриптовые — ничего не меняется
такое подозрение, что и мощностей хостинга хватает…
Олег Ракул
Олег Ракул
0.3743711: Returning processed chunks
0.3859900: Total time

Возвращает чанки очень долго
вызов msproducts
[[!getPage@getpage_minishop2? &element=`msProducts` &tpl=`Product-Category` &limit=`10` &depth=`2` &showLog=`1`]]

чанк Product-Category
<ul class="thumbnails main_thumbs" >  
  <li class="span2 img_link" style="margin-right:-10px;" title="[[+introtext:default=`[[+pagetitle]]`]]">  
    <a href="[[~[[+id]]]]">  
 <img src="[[+thumb:default=`[[++assets_url]]components/minishop2/img/web/ms2_small.png`]]" alt="" width="150" height="150" align="right"/>       
    </a>  
  </li>  

      <li class="span6">
      
<div class="row">
<div class="span3">

<div class="product_link"><a href="[[~[[+id]]]]">[[+pagetitle]]</a></div>
     <div class="row">
     <div class="span1"><strong>Код:</strong> <b>[[+article]]</b></div>
     <div class="span2 inner_small2" align="right">[[+vendor.name]]</div>
     </div>

</div>

<div class="span3">
<div class="row"><div class="span1 inner_small2">Цена розничная</div><div class="span2 price_main price">[[+price]] [[%ms2_frontend_currency]]</div></div>

[[+old_price:gt=`0`:then=`
<div class="row"><div class="span1 inner_small">Цена оптовая</div><div class="span2 price_2 old_price">[[+old_price]] [[%ms2_frontend_currency]]</div></div>


`:else=`

`]]

<button type="submit" class="btn-small btn-primary ms2_link cart_add" data-action="cart/add" data-id="[[+id]]" data-count="1" data-options='[]'><i class="icon-shopping-cart"></i> Добавить в корзину</button>

</div>
</div>

          
  	</li>  
    

</ul>
Юрий Горличенко
Юрий Горличенко
Да уже зашел. Много чего перерыл. Все сделано так же. ну за исключением наполнения шаблонов: они сделаны под себя. Просто getResources вне котекста категегории (то есть на обычном ресурсе или в чанке ) отрабатывает нормально. Более того: Сейчас создал сторонний ресурс. Сделал на нем вывод
[[!getResources?  &resources=`категория продуктов`]]
: он вывел. msProducts вызвал там же — реакции ноль.
Василий Наумкин
Василий Наумкин
У тебя страница с одним товаром открывается столько же, сколько и страница с каталогом — около 4х секунд.

Ну а пустая страница «Партнерам» — около 1й секунды. Если там нет некэшированного wayfinder на 10 уровней вглубь, или рекурсивного вызова сниппетов в чанках, то хостинг надо срочно менять.