Struts 2 e arquivos Dojo são muito pesados ??e afetar o desempenho do local .. Quaisquer remédios?
-
11-07-2019 - |
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:
- construção personalizada do dojo (reduziu o número de I / Os)
- Mova o estático arquivos fora do Struts jar (ajudou muito)
- sintonizar o seu servidor para gzip a resposta (redução do tamanho resposta a 1/3)
- Reduzir o número de imagens no seu site. (Isso é óbvio)
Irá manter a atualização sobre novas alterações ..
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.