Как увеличить скорость загрузки страниц сайтов на ModX REVO

АвторРоман Наумов
05.05.2014
5030
19
Мне понравилось

Любая страница Вашего сайта должна загружаться не больше 3 секунд, в противном случае при разработке сайта были допущены ошибки. Для выявления этих ошибок вам нужно проанализировать сайт в PageSpeed от Google. В большинстве случаев достаточно просто сжать все картинки на сайте, но бывает и так, что страницы долго отдает именно сервер. Как известно, ModX целиком построен на собственной ORM под названием xPDO. Она очень упрощает работу, но, к сожалению, скоростью вывода контента похвастаться не может.

Так как же увеличить скорость загрузки страницы на ModX REVO? Ответ очень прост. Разрабатывая сайты на ModX REVO большинство пользователей используют популярные сниппеты такие как: Wayfinder, getResources, getPage, BreadCrumb и т.д. Для сайтов визиток (и других незначительных сайтов) это, в принципе, правильно, но если Вы используете данные сниппеты при разработке больших, многофункциональных проектов типа интернет порталов - Вы рискуете получить сайт, которому для загрузки страницы нужно больше 5 сек. Именно по этому Вам стоить использовать набор быстрых сниппетов под названием pdoTools.

pdoTools — набор сниппетов по быстрому выводу контента на сайтах MODX Revolution. В его комплекте идёт 8 универсальных сниппетов, которые позволяют выполнять огромное количество действий. Далее по каждому отдельно:

  • pdoResources - сниппет для выборки ресурсов, может заменить getResources. Работает в 5 — 10 раз быстрее.
     
  • pdoMenu - сниппет для генерации меню сайта. Может заменить Wayfinder, потому что поддерживает почти все его параметры и чанки. Работает намного быстрее, особенно при первом запуске с холодным кэшем.
     
  • pdoPage - замена для getPage. Генерирует более правильную пагинацию, также не позволяет писать некорректные запросы в page и limit.
     
  • pdoUsers - сниппет, который выводит пользовтаелей сайта, умеет фильтровать их по группам и ролям.
     
  • pdoCrumbs - быстрая генерация хлебных крошек, заменяет BreadCrumb. Работает быстрее.
     
  • pdoNeighbors - сниппет вывода соседних документов страниц. То есть: следующий, предыдущий и родитель. Очень удобно использовать в навигации по новостям.
     
  • pdoField - сниппет, получающий любое поле ресурса или его родителя, включая ТВ параметр. Заменяет getResourcesField и UltimateParent.
     
  • pdoSitemap - генерация карты сайта. Очень быстрая замена GoogleSiteMap, разница до 12 раз.

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

После того как Вы замените все стандартные сниппеты аналогами из pdoTools, Ваш сайт должен работать быстрее примерно в 2-3 раза. Если при замене сниппетов возникли проблемы - обращайтесь, будем рады помочь.