AjaxSnippet — инструмент, который позволяет загрузить часть страницы через AJAX — сниппет, или чанк. Помимо того, что это экономит время пользователя, также это позволяет добиться высокой сорости загрузки страницы и получить благосклонность у Google PageSpeed.
Параметры сниппета
Пример использования
[[AjaxSnippet? &snippet=`pdoResources` &parents=`0` &tpl=`@INLINE <p>[[+id]] - [[+pagetitle]]</p>` &as_mode=`onload` ]]
Включить возможность использования тегов FENOM и @INLINE
-шаблонов
Версия пакета 1.1.1-pl не поддедживает вставку @INLINE
-чанков и Fenom. Чтобы добавить эту возможность нужно открыть сниппет и на 14 и 15 строке дописать:
$pdo = $modx->getService('pdoTools'); if (!empty($wrapper)) {$wrapper = $pdo->parseChunk($wrapper);}
Загрузка msMiniCart после загрузки страницы через AjaxSnippet
Кэширование сниппета msMiniCart — задача не простая. У меня не получилось реализовать ее должном образом, и поэтому приходится вызывать этот сниппет некэшированным всегда. А это влияет на скорость загрузки страницы не лучшим образом. Судя по отчету сниппета
Поэтому (с точки зрения скорости загрузки страницы), исключить msMiniCart из загрузки страницы, и догрузить его через AJAX — хорошее решение.
Пример реализации
1. Доработка сниппета
Сперва выполните указания под заголовком «Включить возможность использования тегов FENOM и @INLINE
-шаблонов» (см. выше)
2. Вызов сниппета
Я предпочитаю вызвать сниппет с параметром &as_target
, чтобы не создавать лишний элемент в DOM, поэтому в параметр &wrapper
передаю заглушку, которая не позволит считать его пустым, и указываю селектор элемента в &as_target
[[!AjaxSnippet? &snippet=`msMiniCart` &tpl=`tpl.msMiniCart` &as_target=`.header_cart` &wrapper=`@INLINE <span></span>` ]]
Комментарии (0)
Не писать ответ