Cache em páginas JSF

4 respostas
gugaa_df

Pessoal gostaria de utilizar cache nas minhas páginas (css, imagens, html, etc) para diminuir o tempo na hora de renderizar a página.
Possuo 2 páginas no sistema que utilizam a tree do richfaces e demora um pouco para ser carregada essa página.
No meu sistema eu utilizo Jboss Seam 2.1 + Richfaces + oracle 11g.

Estou preocupado no momento com cache de página apenas e não do banco. Gostaria também de perguntar para vcs se acham necessário colocar cache de segundo nível do hibernate para o banco de dados, pq utilizamos o oracle 11g e ele reaproveita as consultas quando se utiliza prepared statement com binding variables. então não sei se compensa… sou novo nesse assunto e venho através deste e-mail pedir ajuda a vcs.

O jboss seam parece que possui algumas coisas referentes ao cache, mas ainda não vi ng que utilizou e deu certo.
Deu uma olhada neste link e gostaria de saber o que achamhttp://www.znetdevelopment.com/blogs/2008/10/18/jsf-performance-improvements-part-i/

Enfim estou perdido para implementar, poderiam me dar uma luz?

Obrigado.

4 Respostas

Paulo_Silveira

sempre usei OSCache para JSP, mas dado o funcionamento do JSF, nao sei se usar a taglib do oscache para JSP seria legal para JSF (pensei, e creio que funcione bem, mas com certeza não é elegante, assim como não é elegante usar forEach e if dentro de JSF)…

procurei um cache especifico para jsf por um tempinho e tambem nao encontrei. Curioso mesmo…

sobre o cache de segundo nivel, considero ele vital para quase qualquer aplicacao. pode comecar com ele simples, sem o query cache, e depois voce vai medindo a necessidade dele de acordo com o HibernateStatistics

B

quando vc diz cache jsf, eh complicado pq envolve controller e view. Pela sua msg vou entender como view.
tem muita coisa… os links abaixo dao dicas de cache, tunnings de renderizacao e compactacao:


http://code.google.com/speed/page-speed/docs/rules_intro.html

++ editado ++
tsc tsc tsc prestando mais atencao na sua pergunta minhas dicas estao mais simples do que vc precisa. mas enfim, espero q tb seja util.

gugaa_df

Obrigado pela ajuda e dica de vcs. Qualquer informação é mto bem vinda.

Paulo mesmo o oracle reaproveitando a consulta, vc acha interessante correr atrás de implementar segundo nível de cache do hibernate? é pq eu nunca fiz isso, sei nem por onde começa, mas eu vou correr atrás disso esse fds, eu tb não conheco esse HibernateStatistics… rsrs

bobmoe eu utilizei já algumas dicas do gzip que são parecidas com essa, só faltou eu implementar o header expires que ainda não arrumei uma solução interessante para fazer, caso alguém conheça e poder me ajudar, ficaria mto grato.

B

uma das poucas coisas que gosto no JSF eh o phaselistener. para resolver o problema do header, na classe que implementa o PhaseListener vc pode fazer o seguinte:

public void beforePhase(PhaseEvent phaseEvent) {
        FacesContext facesContext = phaseEvent.getFacesContext();
        HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse();
        response.addHeader("Pragma", "no-cache");
        response.addHeader("Expires", "-1");
    }

e pronto! todas as paginas vao receber essa configuracao.

Criado 18 de agosto de 2009
Ultima resposta 19 de ago. de 2009
Respostas 4
Participantes 3