编程语言
首页 > 编程语言> > CQ5删除阻止渲染的JavaScript

CQ5删除阻止渲染的JavaScript

作者:互联网

我正在处理此文档,以删除阻塞的js:

Remove Blocking JS

但是,对于CQ5,我们通过以下方式包含js:

<cq:includeClientLib js="headlibs"/>

如何修改脚本标记,例如:

<script async src="my.js">

因此,我可以删除阻止JS.

解决方法:

cq:includeClientLib没有任何选项可以执行此操作.您可以尝试使用com.day.cq.widget.HtmlLibraryManager界面获取JS文件的路径,标签是该界面的便捷包装.

com.day.cq.widget.HtmlLibraryManager clientlibmanager = sling.getService(com.day.cq.widget.HtmlLibraryManager.class);
if(clientlibmanager != null)
{ 
    String[] categoryArray = {"headlibs"};
    java.util.Collection<com.day.cq.widget.ClientLibrary> libs = clientlibmanager.getLibraries(catArray,com.day.cq.widget.LibraryType.JS,false,false);
    for(com.day.cq.widget.ClientLibrary lib : libs) {
        out.write("<script async type=\"text/javascript\" src=\""+lib.getIncludePath(com.day.cq.widget.LibraryType.JS)+"\"></script>");
    }

} else {
         out.write("clientlib manager is null");
  }

方法getIncludePath()还采用了一个最小化的附加参数(布尔值)来提供该缩小后的文件的路径.

标签:aem,adobe,css,javascript,java
来源: https://codeday.me/bug/20191028/1955996.html