JSF: оптимизированы ли компоненты ресурсов? - PullRequest
1 голос
/ 09 февраля 2012

Это не имеет большого значения, я знаю, но в JSF 2 я могу вывести ресурс (например, css) одним из двух способов:

a) Использование стандартного компонента html <link> и абсолютного пути к компоненту. Это рассматривается как текст и поэтому не встроено в компонент.

b) Использование jsf <h:stylesheet> и установка его имени и библиотеки.

Теперь, если я пишу основной шаблон сайта, что-то, что не изменится (исправлено), лучше ли мне использовать простой текст и давать абсолютные пути к ресурсам? Есть ли какие-либо изменения в производительности, даже если они незначительны, между его использованием и компонентом jsf?

Оптимизирует ли JSF доступ к этому, чтобы ему не приходилось находить ресурс каждый раз при визуализации страницы?

То же самое относится ко всем типам ресурсов, изображений и JavaScript.

Ответы [ 2 ]

3 голосов
/ 09 февраля 2012

Оптимизация на самом деле зависит от используемой реализации JSF, но да, и Mojarra, и MyFaces высоко оптимизировали производительность обработки ресурсов. Каждая отдельная возможность кэширования на стороне сервера и на стороне клиента учитывается. Наиболее часто используемые ресурсы кэшируются в памяти сервера, передача ввода-вывода осуществляется по каналам, установлены правильные заголовки ответов ETag и Last-Modified и т. Д. В случае с Мохаррой, хорошая отправная точка, чтобы проверить, как все обработан метод com.sun.faces.application.resource.ResourceHandlerImpl#handleResourceRequest().

1 голос
/ 09 февраля 2012

это не <h:stylesheet>, а <h:outputStylesheet>

Компоненты JSF преобразуются в обычный HTML во время рендеринга, поэтому, когда вы видите исходный код своей страницы, вы не найдете ни одного компонента jsf, все компоненты jsf автоматически преобразуются в соответствующие компоненты HTML.

этот тег будет преобразован в html следующим образом

<h:outputStylesheet library="css" name="style.css"  />

Вывод HTML…

<link type="text/css" rel="stylesheet" 
   href="/JavaServerFaces/faces/javax.faces.resource/style.css?ln=css" />

Внимание

When render CSS file via <h:outputStylesheet /> tag, remember put the <h:head /> 
tag as well;  Otherwise the css file will not render successful.

см. http://www.mkyong.com/jsf2/how-to-include-cascading-style-sheets-css-in-jsf/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...