Рендеринг - самая дорогая задача в любом случае.Но 2 секунды - это довольно много (кстати, эти 2 секунды перед рендерингом звучат как плохая производительность БД).Разве вы не используете условные выражения внутри компонента UIData
?Например, h:inputText disabled="#{bean.disabled}"
и т. Д.
Трудно сказать, какой путь улучшить производительность, и трудно это улучшить на стороне JSF.Разве вы не знаете о скорости сети и / или веб-браузера в полной картине?Плохая пропускная способность сети и небольшой буфер отклика на стороне сервера могут блокировать и то, и другое.Низкая производительность рендеринга таблиц в веб-браузере может блокировать одно и другое.MSIE, как известно, является катастрофой в производительности рендеринга таблиц.Вместо этого попробуйте FireFox или Chrome.
В любом случае, замена ui:repeat
на c:forEach
не очень поможет.Более того, c:forEach
немного менее эффективен, поскольку он вызывает items
на каждую итерацию вместо кэширования.