isualização @JSF sendo reconstruída em cada solicitação de ajax

Estou tendo um problema de desempenho com minhas solicitações de ajax JSF / RichFaces / Facelets e pelo que posso dizer, porque toda a árvore de componentes está sendo reconstruída em cada solicitação de ajax. Isso está acontecendo mesmo se eu usar ajaxSingle = true, agrupar seções em a4j: region, declarar uma única seção para renderização ou nenhuma. Nossa página é uma página dinâmica com muitos níveis aninhados. A página pode conter entre 800 e 900 campos (inputText, calendários avançados, selectOneMenus, etc.). O tempo de carregamento inicial é um problema, mas eu entendo esse problema, são muitos campos. Uma vez que tenhamos esse tempo inicial de criação / renderização, projetamos todas as outras ações para serem ajax e somente renderizamos novamente o que é necessário. Nos logs de depuração do facelets, vejo mensagens como esta em qualquer chamada ajax:

2011-08-24 22:19:03,054 DEBUG [facelets.viewhandler] (http-0.0.0.0-8080-2) Took
24445ms to build view: /oconsole/appfile.xhtml
2011-08-24 22:19:09,377 DEBUG [facelets.viewhandler] (http-0.0.0.0-8080-2) Took
6323ms to render view: /oconsole/appfile.xhtml

Não tenho certeza se algo que estamos fazendo está causando a reconstrução de toda a árvore de componentes ou se os facelets estão determinando essa necessidade necessária por algum motivo (cache obsoleto?). Aqui está nossa pilha: JBoss 5.1 JSF 1.2 RichFaces. 3.3.3.Final Facelets 1.1.15 Costura 2.1.2

Tentei adicionar alguns parâmetros de contexto para ver se eles ajudariam, mas eles não fizeram nada: facelets.BUILD_BEFORE_RESTORE = facelets falsos.REFRESH_PERIOD = -1 ou 5 (como em 5 minutos)

Existe uma maneira de saber se nossos pontos de vista estão sendo armazenados em cache corretamente? Nós não tratamos um método de economia de estado, por isso acredito que o padrão é o lado do servidor. Todos os nossos pedidos ocorrem dentro de longas conversas. Eu não tinha certeza se isso é importante, pois eu pensei que as visualizações fossem armazenadas em cache no nível da sessão? Qualquer ajuda seria muito apreciada, obrigado

Atualize após mais depuração:

O AjaxViewHandler (que possui uma variável de membro do FaceletsViewHandler) possui developmentMode = true set. Não tenho certeza se isso está fazendo com que facelets não armazenem em cache nenhuma visualização, para que quaisquer alterações sejam atualizadas durante os ciclos de desenvolvimento ... ?? Tem sido muito difícil encontrar informações sobre o cache de exibições facelets / JSF e o comportamento e controle disso. Além disso, quando adiciono parâmetros de configuração:

<context-param>
<param-name>facelets.DEVELOPMENT</param-name>
<param-value>false</param-value>
</context-param>

Isso não demorou! No depurador, ainda vejo o conjunto verdadeiro. Como temos muitas subviews, também tentei com.sun.faces.numberOfLogicalViews e com.sun.faces.numberOfViewsInSession para 1000 acima de 15 (padrão) e isso não teve efeito.

Também tentei mudar para salvar o estado do lado do cliente sem sorte. Ficar sem ideias .... espero que alguém possa ajudar ....

Parece que o Seam 2.1 inicializa automaticamente o RichFaces e não tenho certeza se isso tem algo a ver com isso .....

questionAnswers(2)

yourAnswerToTheQuestion