Struts 2 e arquivos Dojo são muito pesados ??e afetar o desempenho do local .. Quaisquer remédios?

StackOverflow https://stackoverflow.com/questions/327820

Pergunta

Bem .. nós desenvolvemos uma aplicação J2EE utilizando capacidades struts2 ajax. Nós achamos que a implementação dojo é bastante lento. Fizemos as seguintes coisas: 1. compilação personalizada da biblioteca dojo. (Aumento dojo.js de 240kb de 350kb) 2. Tomou todas as coisas estática fora do frasco struts e manteve-o fora.

O desempenho foi significativamente melhorada. Mas ainda é bastante pesado como você pode imaginar com tamanho 350kb ..

É ajax struts2 suposto ser esse pesado? ou há qualquer implementação mais leve disponível?


Edit: Eu usei Firebug e YSlow com o meu pedido. Algumas mudanças que melhoraram a minha situação extremamente são mencionados abaixo:

  1. construção personalizada do dojo (reduziu o número de I / Os)
  2. Mova o estático arquivos fora do Struts jar (ajudou muito)
  3. sintonizar o seu servidor para gzip a resposta (redução do tamanho resposta a 1/3)
  4. Reduzir o número de imagens no seu site. (Isso é óbvio)

Irá manter a atualização sobre novas alterações ..

Foi útil?

Solução

Antes de tudo verifique se você fez tudo no servidor para facilitar o armazenamento em cache (por exemplo, definir cabeçalhos HTTP corretos, compressão, armazenamento em cache do lado do servidor, armazena em cache a montante, e assim por diante). Consulte Melhorar o desempenho ... para mais detalhes.

O objetivo é reduzir o I / O, tanto quanto possível - usar o Firebug ou qualquer outra ferramenta de monitoramento de tráfego de rede para ver quanto é enviado e para trás. Tente minimizar o número de pedidos de E / S e o número total de bytes.

Não se esqueça que se aplica aos seus dados dinâmicos também -. Escolher formatos eficientes, agrupar vários pedidos relacionados juntos, remova todas as Deadwood que está sendo enviada uma e outra inalterada

Se a compilação personalizado e do lado do servidor tweaks não ajudou, considerar a reestruturação seu aplicativo web para ser mais leve. Exemplos:

  • Avaliar a técnica tela inicial discutido no link acima.
  • Se você usar um monte de diferentes elementos do formulário, ver se é realmente necessário, e voltar a cair elementos DOM regulares como "input", "button", "textarea", "select".
  • O mesmo vale para os widgets de layout. Veja se simples CSS pode ajudá-lo.
  • Avalie a construção de Dojo em camadas em vez de um dojo.js monolíticas tão somente o subconjunto necessário é carregado por páginas web. Veja detalhes em O sistema de pacote e personalizado constrói .

Aplicativos da Web com Dojo para a vida para últimos 2 anos eu ainda não vi o que não pode ser otimizado corretamente até que esteja totalmente aceito e percebido por usuários finais como "fast", "ágil" e "light -Peso".

Outras dicas

Certifique-se de seguir esta FAQ primeiro: http://struts.apache.org/2.x/docs/ desempenho de tuning.html

Normalmente, eu re-escrever o meu próprio tema em vez de usar o tema ajax struts2 que dojo construído dentro. Dessa forma eu posso usar qualquer kit de ferramentas que deseja usar (jQuery). Eu vi as maiores melhorias de desempenho quando eu copiar a pasta de modelos a partir do jar para o diretório web raiz para o webapp.

Última vez que verifiquei, struts estava enviando uma liberação de Dojo (0,4) que vai em 2 anos de idade. Dojo fez uma reescrita para a versão 0.9 / 1.0 que teve ganhos significativos de desempenho e tamanho do código reduzida. Você deve se certificar de que você está executando uma versão recente do Dojo (versão atual é a 1.2.3) e usar o construir e dicas de Eugene, acima.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top