положить jsf.js в конце тела - PullRequest
0 голосов
/ 04 декабря 2018

У меня развернуто веб-приложение Java EE 8.он использует JSF 2.3. Я тестирую его с помощью Google PageSpeed ​​Insights.и рекомендация гласит:

Устранить ресурсы, блокирующие рендеринг

…font/fonts-min.css.xhtml?ln=custom(**.com)
…fullcalendar/fullcalendar.bundle-min.css.xhtml?ln=vendors(**.com)
…base/vendors.bundle-min.css.xhtml?ln=vendors(**.com)
…base/style.bundle-min.css.xhtml?ln=demo(**.com)
…fix/poppins.css.xhtml?ln=custom(**.com)
/javax.faces.resource/jsf.js.xhtml?ln=javax.faces(**.com)

, поскольку jsf.js по умолчанию добавляется фреймворком JSF.Есть ли решение, чтобы я загрузил его в конце тела рядом с другими javascript-кодами?И если это так, будет ли это хорошей идеей?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Если вы используете PrimeFaces, вы можете активировать функцию "MOVE_SCRIPTS_TO_BOTTOM" через context-param.

Это перемещает все включенные сценарии (script src = "...") в нижнюю часть, а также объединяет всевстроенные сценарии (...) для одного встроенного сценария.

Это действительно большой прирост производительности.

См .: https://github.com/primefaces/primefaces/issues/2888

0 голосов
/ 04 декабря 2018

Возможно поместить скрипт в конец тела, используя атрибут target="body":

<h:head>
    <h:outputScript name="jsf.js" library="javax.faces" target="body"/>
</h:head>

Но, как отмечает Кукельтье, имейте в виду, что это может иметь побочные эффекты и выигрыш в оптимизацииможет быть ограничен первым запросом.

Реализованная реализация (mojarra) явно добавляет этот сценарий к элементу <head>, что может иметь веские причины:

com.sun.faces.renderkit.RenderKitUtils.installJsfJsIfNecessary(FacesContext):

context.getViewRoot().addComponentResource(context, createJsfJs(), "head");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...