2016-11-22 1 views
0

В моем проекте есть примеры, когда компоненты используют директивы Server Side для включения компонентов include/exclude. И несколько мест, правильный зрелищный/JSP-код используется для этой же цели. Например:Есть ли какая-либо польза от запроса на обработку в Apache (с использованием директив на стороне сервера) Vs AEM Publisher (с использованием Sightly условий)?

<c:if test="${authorMode}"> 
    <cq:include path="headerpar" resourceType="foundation/components/iparsys"/> 
</c:if> 
<c:if test="${not authorMode}"> 
    <!--#include virtual="/content/myapp/${lang}/global/customer/header.html"-- 
</c:if> 

От основы я понимаю Side директивы сервера получает решен на самом Apache, тогда как коды красивый/Руль обрабатывается в Publisher. Есть ли смысл кодирования с использованием директив? Если да, то довольно много кода можно перенести на серверные скрипты, поскольку он уменьшает другой уровень, и Apache намного быстрее по сравнению с издателем? Почему Adobe продвигает свои скрипты и не способствует написанию с помощью директив на стороне сервера?

ответ

2

SSI включает разрешения на apache, а cq: include внутри CQ. Использование SSI требует от вас немного больше знаний, чтобы вы знали, что делаете.

Вы можете использовать SSI, используя многие из них (в основном, по вашему мнению), если вы используете его правильно.

  1. Предположим, у вас есть верхний и нижний колонтитулы, который одинаков для каждой страницы, но содержит тяжелую логику (навигация, CRX дерево перемещения и т.д.). В этом случае, если вы правильно настроили кеширование диспетчера, заголовок фактически будет отображаться только один раз (для первой страницы), и если пользователь запросит другую страницу с тем же заголовком, он будет просто извлечен из кэша диспетчера

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

  3. Предполагая, что у вас есть конкретный контент, вы также можете кэшировать части страниц и динамически отображать только те части (это то, что Sling Dynamic Include для ->https://github.com/Cognifide/Sling-Dynamic-Include)

Таким образом, я бы определенно использовал SSI для конкретных фрагментов страниц, которые повторно используются на вашем сайте или должны отличаться для разных пользователей, например, некоторых заголовков, нижних колонтитулов или sth, таких как «Приветственный пользователь» ABC ». Я бы не сделал этого с обычным контентом, поскольку он будет просто кэшироваться в страницах html.

+0

Спасибо. Это дает хорошее обоснование использования SSI. –

Смежные вопросы