AEM 客户库整合

AEM clienlibs consolidation

我指的是 adobe blog 根据标准指南,我们需要将所有组件特定的客户端库嵌入 /etc/design/app/clientlibs。完成后,所有 clientlibs 将合并为一个调用。

我有一个问题,如果我们这样做,AEM 会不会在页面加载时调用所有 clientlib,这不会影响第一页加载时的性能吗?当然,后续调用会更轻?

还有什么方法可以让我仅在作者是 creating/editing 内容或仅在作者模式下加载创作特定的客户端库?

I have a question if we do this way, will AEM not call all clientlibs on page load and will that not affect performance on first page load? Of course, subsequent calls will be lighter?

目的是避免对您代码中包含的每个人 libraries/JS 进行多次网络调用。使用有效 compression/minification 优化大小。

要回答您的问题,需要权衡取舍,但从长远来看是有益的。在大多数情况下,有了调度程序和 CDN,第一次加载是唯一的瓶颈。

Also is there any way where i can load authoring specific clientlibs only when author is creating/editing content or only on author mode?

您可以而且应该仅在创作实例上包含创作客户端库,您可以通过在包含创作客户端库之前放置编辑模式检查来实现。

查看 /libs/wcm/foundation/components/page/author.html 它检查包含 edit/authoring 库的编辑模式 -

<sly data-sly-use.wcmInit="initwcm.js"
      data-sly-use.clientLib="${'/libs/granite/sightly/templates/clientlib.html'}"
      data-sly-test="${!wcmInit.wcmmode.disabled && wcmInit.isTouchAuthoring}" data-sly-call="${clientLib.all @ categories='cq.authoring.page'}" />
<sly data-sly-test="${!wcmInit.wcmmode.disabled && !wcmInit.isTouchAuthoring}" data-sly-call="${clientLib.all @ categories='cq.wcm.edit'}" />