Медленная загрузка страницы PdoPage + phpthumbon

Здравствуйте, использую PdoPage для вывод ресурсов и Ajax. Первая загрузка страницы крайне долгая, в среднем 13-14 секунд.
Вызов PdoPage:
<div id="pdopage" class="row">
                    <div  class="col-md-12 col-xs-12">
                        <div class="rows product-list grid_full grid_sidebar grid-uniform">
                             [[!pdoPage?
                             &parents=`[[*id]]`
                             &element=`msProducts`
                             &depth=`1`
                             &tpl=`product-list`
                             &showLog=`1`
                             &includeTVs=`ProductImage, BannerBetween`
                             &prepareTVs=`ProductImage, BannerBetween`
                             &sortdir=`ASC`
                             &limit=`12`
                             &ajaxMode=`button`
                             &cache=`1` 
                             &cacheTime=`3600`
                             &ajaxElemMore=`#pdopage .btn-dark`
                             &ajaxTplMore=`@INLINE <div class="refresh"><button type="button" class="btn btn-dark"><i class="fa fa-refresh"></i> ПОКАЗАТЬ ЕЩЁ</button></div>`
                            ]]
                        </div>
                    </div>
                    [[!+page.nav]]
showLog показывает следующее:
0.0001149: pdoTools loaded
0.0005381: No cached data for key "resource/web/resources/29/6c7dbaa493f9e28011708ff6328bbdf8a74bdfc7"
0.0008459: Loaded "modSnippet" with name "msProducts"
13.5661960: Created inline "modChunk" with name "d05efc4505da373615bc515bcf02b061"
0.0002251: Created inline "modChunk" with name "55672c6cb61ac568824f4be69299581e"
0.0000911: Created inline "modChunk" with name "4f3e5113475c9912619244e9a35de906"
0.0001009: Created inline "modChunk" with name "5412949f8419d87e4477caa8ddf011d6"
0.0001130: Created inline "modChunk" with name "bd4cbd607cfa20989b5387164505200c"
0.0000780: Created inline "modChunk" with name "13d9c5132d112fc0a21423cf88f2a61e
0.0001471: Created inline "modChunk" with name "e6747421ac951eec87076a3f44c6a184"
0.0003500: Saved data to cache "resource/web/resources/29/6c7dbaa493f9e28011708ff6328bbdf8a74bdfc7"
13.5688210: Total time
2 097 152: Memory usage
Я так понимаю на продолжительность загрузки страницы влияют инлайн-чанки пагинации. В принципе и без AJAX грузится также долго. Не понимаю куда копать.
Кто-нибудь сталкивался с подобной проблемой и как ее решал?

UPD: В общем-то понял, что долгая загрузка возникает из-за использования phpthumbon в чанке. Как решить проблему не понимаю. Надеюсь на вашу помощь :)
Александр
14 июля 2020, 19:56
modx.pro
752
0

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

Александр
14 июля 2020, 20:40
0
Проблема точно в сниппете msProducts, без него вывод ресурсов достаточно быстрый.
Но тогда через PdoResources у меня нет доступа к ценам товара.
Я, конечно, могу создать ТВ с ценой и написать скрипт для их заполнения, но это выглядит как какой-то костыль.
    Павел Романов
    15 июля 2020, 10:13
    0
    Сделайте сниппет getProdField:
    <?php
    if(!$id) $id = $modx->resource->get('id');
    if(!$pr = $modx->getObject('msProduct', $id)) return;
    return $pr->get($field);

    И используйте:
    Цена: [[getProdField? &id=`[[+id]]` &field=`price`]]
    Старая цена: [[getProdField? &id=`[[+id]]` &field=`old_price`]]
    Картинка: [[getProdField? &id=`[[+id]]` &field=`image`]]
    Превью: [[getProdField? &id=`[[+id]]` &field=`thumb`]]
    и т. д.
    Доступны все поля из таблицы modx_ms2_products:
    article, price, old_price, weight, image, thumb, vendor, made_in, new, popular, favorite, tags, color, size, source
      Дмитрий
      03 октября 2021, 17:54
      0
      Здравствуйте, удалось найти решение? у меня тоже при использовании msProducts, но при чем только когда подключаю TV &includeTVs
      0.0000739: Sorted by msProduct.menuindex, ASC
      0.0000031: Limited to 60, offset 0
      0.0002580: SQL prepared "SELECT SQL_CALC_FOUND_ROWS `msProduct`.`id`, `msProduct`.`type`, `msProduct`.`contentType`, `msProduct`.`pagetitle`, `msProduct`.`longtitle`, `msProduct`.`description`, `msProduct`.`alias`, `msProduct`.`alias_visible`, `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`, `Data`.`currency_id`, `Data`.`currency_set_id`, `Data`.`msmc_price`, `Data`.`msmc_old_price`, `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`, IFNULL(`TVpicture_url_product`.`value`, '') AS `picture_url_product`, IFNULL(`TVavailability_product`.`value`, '') AS `availability_product`, IFNULL(`TVispromo`.`value`, '0') AS `isPromo`, IFNULL(`TVwork_width_sel`.`value`, '') AS `work_width_sel`, IFNULL(`TVdepth_sel`.`value`, '') AS `depth_sel` FROM `modxlocal_site_content` AS `msProduct` LEFT JOIN `modxlocal_ms2_products` `Data` ON `msProduct`.`id` =  `Data`.`id` LEFT JOIN `modxlocal_ms2_vendors` `Vendor` ON Data.vendor=Vendor.id LEFT JOIN `modxlocal_site_tmplvar_contentvalues` `TVpicture_url_product` ON `TVpicture_url_product`.`contentid` = `msProduct`.`id` AND `TVpicture_url_product`.`tmplvarid` = 7 LEFT JOIN `modxlocal_site_tmplvar_contentvalues` `TVavailability_product` ON `TVavailability_product`.`contentid` = `msProduct`.`id` AND `TVavailability_product`.`tmplvarid` = 10 LEFT JOIN `modxlocal_site_tmplvar_contentvalues` `TVispromo` ON `TVispromo`.`contentid` = `msProduct`.`id` AND `TVispromo`.`tmplvarid` = 14 LEFT JOIN `modxlocal_site_tmplvar_contentvalues` `TVwork_width_sel` ON `TVwork_width_sel`.`contentid` = `msProduct`.`id` AND `TVwork_width_sel`.`tmplvarid` = 22 LEFT JOIN `modxlocal_site_tmplvar_contentvalues` `TVdepth_sel` ON `TVdepth_sel`.`contentid` = `msProduct`.`id` AND `TVdepth_sel`.`tmplvarid` = 23 WHERE  ( `msProduct`.`class_key` = 'msProduct' AND `msProduct`.`parent` IN (2209,2648,4233,4261,4266,4270,5306,5314,5318,5323,5330,5345,5352,5358,2649,2657,2650,2651,2652,2653,2654,2655,2656,2658,2659,2660,2661,4150,4234,4237,4249,4260,4235,4236,4238,4239,4240,4242,4243,4244,4245,4246,4247,4248,4250,4256,4258,4252,4259,4255,4251,4254,4253,4257,4262,4263,4267,4268,4269,4265,4271,4272,4273,4274,4275,4276,4277,4278,4279,4280,4281,5307,5308,5309,5310,5311,5312,5313,5315,5316,5317,5319,5320,5321,5322,5324,5325,5326,5327,5328,5329,5331,5332,5333,5334,5335,5336,5337,5338,5339,5340,5341,5342,5343,5344,5346,5347,5348,5349,5350,5351,5353,5354,5355,5356,5357,5359,5360,5361,5362,5363,5364,5365,5366,5367,5368,5369,5370) AND `msProduct`.`published` = 1 AND `msProduct`.`deleted` = 0 AND `msProduct`.`isfolder` = 0 )  GROUP BY msProduct.id ORDER BY msProduct.menuindex ASC LIMIT 60 "
      5.5564818: SQL executed
      0.0001550: Total rows: 106
      0.0004580: Rows fetched
      0.0003700: Returning raw data
      0.0017910: Checked the active modifiers
      0.0047040: Loaded "modChunk" with name "product-item-sel"
      0.0128670: Compiled Fenom chunk with name "modchunk/48"
      0.0355496: Time to load products options
      5.6675000: Total time
      14 680 064: Memory usage

      0.0041530: pdoTools loaded
      0.0002110: Created inline "modChunk" with name "f7da63f2d337d08ca9dcacc531069c1e"
      0.0086610: Loaded "modSnippet" with name "msProducts"
      5.6958449: Created inline "modChunk" with name "5412949f8419d87e4477caa8ddf011d6"
      0.0001509: Created inline "modChunk" with name "4f3e5113475c9912619244e9a35de906"
      0.0001321: Created inline "modChunk" with name "2705f364c1156b49778eecee9a2b4f18"
      0.0001400: Created inline "modChunk" with name "70824ca308e06c8e375e53759cd03674"
      0.0001302: Created inline "modChunk" with name "e6747421ac951eec87076a3f44c6a184"
      5.7094610: Total time
      14 680 064: Memory usage
      Роман
      16 июля 2020, 10:21
      0
      Используйте pThumb вместо phpthumbon. Можно при загрузке картинок в карточку товара сразу генерировать нужные размеры изображений, и тогда не нужно будет использовать phpthumbon.
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        4