У меня есть большая древовидная структура (почти 6000 узлов и рост), которую я показываю в своем веб-браузере как Richfaces rich: tree.JSF2 Richfaces 4.1.0 Частичная рендеринг дерева Ajax
Когда выбран узел, функция-обработчик в компоненте-бэбинге выполняет некоторую логику и выполняет некоторую магию.
Одна вещь, которая случается, заключается в том, что дерево перерисовывается с помощью Ajax-вызова для каждого выбора в дереве. Это означает, что более 2 МБ отправляется на сервер каждый раз, когда изменяется выбор.
Как вы могли догадаться, моя проблема здесь в том, что это очень медленно. То, что я хотел бы сделать, это только дерево-узел, который был выбран повторно, а не все дерево, так как это, надеюсь, просто POST на пару КБ на сервер.
Это мой первый реальный проект в JSF2.0 с использованием RichFaces 4.1.0, поэтому я искал как безумное решение и удалял документацию на сайте RichFaces, но еще не нашел решение.
Мой код выглядит следующим образом:
<h:form id="main">
<a4j:outputPanel ajaxRendered="true">
<rich:panel id="treePanel" header="Tree">
<rich:tree id="theTree" var="tree" value="#{treeBean.rootNodes}" selectionType="ajax" toggleType="client" selectionChangeListener="#{treeBean.selectionChanged}">
<rich:treeNode>
<h:outputText styleClass="#{tree.selected?'selectedNode':''}" value="#{tree.title}" />
</rich:treeNode>
</rich:tree>
</rich:panel>
</a4j:outputPanel>
</h:form>
Вы нашли решение для частичного рендеринга узлов дерева. –