Alta Performance em Aplicações Web

30
ALTA PERFORMANCE EM Anderson Aguiar @andersonaguiar APLICAÇÕES WEB { }

description

Dicas para deixar seu site diferenciado da maioria. Técnicas de otimizações: compression, sprite, images, requests, etc.

Transcript of Alta Performance em Aplicações Web

Page 1: Alta Performance em Aplicações Web

ALTA PERFORMANCE EM

Anderson Aguiar @andersonaguiar

APLICAÇÕES WEB

{ }

Page 2: Alta Performance em Aplicações Web

Geralmente as principais preocupações no desenvolvimento de uma aplicação web são: Modelar a base de dados, criar chaves, índices... Documentar o back-end, fazer testes, evitar duplicação de código, etc.

Com certeza. Mas não adianta SÓ o back-end estar todo “bonitinho” e deixar o front de qualquer jeito, sendo que 70-90% do tempo de carregamento de uma página é gasto no download de elementos do front-end, como imagens, CSS e Javascript.

É correto fazer isso?!

Page 3: Alta Performance em Aplicações Web

A importância da performance no front-end :O

Page 4: Alta Performance em Aplicações Web

•Esperar é ruim!

•Esperar é muito irritante!

•Esperar estressa!

•Tempo é dinheiro.

Page 5: Alta Performance em Aplicações Web

O Yahoo! descobriu que, para cada 400ms de melhora na performance, seu tráfego aumenta em 9% Ao cortar 2,2s da landing page do Firefox, a Mozilla aumentou o número de downloads em 15,4%, totalizando um ganho de mais de 60 milhões de cópias por ano A Amazon concluiu que apenas 100ms de melhora aumentam 1% seu faturamento O Google aumentou o número de resultados por página de 10 para 30. Isso aumentou o tempo de carregamento de 0.4s para 0.9s, o que diminuiu em 20% o tráfego das buscas

Page 6: Alta Performance em Aplicações Web
Page 7: Alta Performance em Aplicações Web
Page 8: Alta Performance em Aplicações Web

Falta de cuidado na exportação das imagens

Redimensionar imagens no HTML

Muitas requisições HTTP(imagens, JS, CSS)

Inclusão de arquivos não utilizados na página

CSS no final da página

JS no início da página(às vezes é necessário)

Javascript e CSS inline(não é possível compartilhar em outras

páginas, dificulta o cache)

Tag <img /> com o atributo src vazio ou errado

Não utilização de sprites

Códigos duplicados

Page 9: Alta Performance em Aplicações Web

1. CSS no topo e JS no fim da página

2. Utilize imagens, CSS e JS somente nas páginas que for necessário

3. Combine arquivos JS, CSS e imagens(Sprite) para diminuir as requisições HTTP

4. Remova scripts duplicados

5. Minifique JS e CSS!

6. NÃO redimensione imagens no HTML

7. Exporte as imagens no formato correto

8. Google AJAX Libraries API para servir estruturas javascript populares (como Mootools, jQuery e Dojo)

9. Utilize JS e CSS externos

10. Não utilize expressões no CSS, são custosas!

11. Evite criar CSS separado para impressão

Page 10: Alta Performance em Aplicações Web

<img src=“forkintuba.png” alt=“...” width=“256” height=“32” /> Resultado:

Exemplo:

Tamanho original: 256x32

<img src=“forkintuba.png” alt=“...” width=“80” /> Resultado:

Page 11: Alta Performance em Aplicações Web

Combine cores semelhantes Tente usar poucas cores, assim poderá ser exportado em PNG8

Sprites horizontais tendem a ser menores

Avaliar páginas que irão utilizar

Page 12: Alta Performance em Aplicações Web

background-position: -0px -0px; background-position: -20px -0px; background-position: -40px -0px; background-position: -60px -0px; background-position: -80px -0px; background-position: -100px -0px; background-position: -120px -0px; background-position: -140px -0px; background-position: -160px -0px; background-position: -180px -0px;

1 requisição ao invés de 10!

Tools:

http://css-sprit.es/

http://spritegen.website-performance.org/

http://www.spritecow.com/

background-position: 0px 0px; background-position: 0px -60px; background-position: 120px 0px; background-position: 120px -60px; background-position: 240px 0px; background-position: 240px -60px;

1 requisição ao invés de 6!

Page 13: Alta Performance em Aplicações Web

Eles também usam :)

Page 14: Alta Performance em Aplicações Web

Utilize a ferramenta do Yahoo. http://www.smushit.com/ysmush.it/

Teste vários níveis de qualidade da imagem(não escolha qualquer extensão)

Remova cores não utilizadas

Remova metadata dos JPEGs

Utilize PNG8 ao invés de GIFs

Pelo firebug, ou enviando todas através do site

Page 15: Alta Performance em Aplicações Web

reset.css

fonts.css

header.css

menu.css

footer.css

principal.css

funcoes.js

slider.js

lightbox.js

menu.js

timer.js

noticias.js

5 > 1 5 > 1

10 > 2

Page 16: Alta Performance em Aplicações Web

YUI Compressor: http://developer.yahoo.com/yui/compressor/ Google Closure Compiler: http://code.google.com/intl/pt-BR/closure/compiler/ JSMIN: http://www.crockford.com/javascript/jsmin.html JS Minifier: http://fmarcia.info/jsmin/test.html JS Compress: http://jscompress.com/

Page 17: Alta Performance em Aplicações Web

Antes

9.86k

Page 18: Alta Performance em Aplicações Web

Depois

7.6k

Page 19: Alta Performance em Aplicações Web

YUI Compressor: http://developer.yahoo.com/yui/compressor/ CSS Compressor & Minifier: http://www.minifycss.com/css-compressor/ CSS Compressor: http://www.csscompressor.com/ Refresh-sf(using YUI Compressor): http://www.refresh-sf.com/yui/

Page 20: Alta Performance em Aplicações Web

Antes

22.4k

Page 21: Alta Performance em Aplicações Web

Depois

17.5k

Page 22: Alta Performance em Aplicações Web

Exemplo de melhoria

Page 23: Alta Performance em Aplicações Web

Online JavaScript/CSS Compression Using YUI Compressor

http://www.refresh-sf.com/yui/

Page 24: Alta Performance em Aplicações Web

O que eles fizeram: Simplesmente combinaram os arquivos

Javascript e CSS e removeram os não utilizados. Com isso

diminuiram 2.2 segundos do tempo de carregamento da

página.

Feito isso, obtiveram15,4% de aumento nos downloads do

browser.

Page 25: Alta Performance em Aplicações Web

= combinação perfeita

Utilize as ferramentas acima para diagnosticar detalhadamente o seu site. Monitore constantemente, e implemente melhorias para otimizar ainda mais suas páginas.

Page 26: Alta Performance em Aplicações Web

Foque no front-end, você deve fazer o controle do tempo de resposta. Com estas técnicas + (nginx, gzip e cache), você poderá reduzir em 50%(ou mais) o tempo carregamento da página, consequentemente melhorar a experiência do usuário e ajudar na parte de SEO.

Menos elementos = Menor tempo de carregamento Menos requests = Menor tempo de carregamento Menor tempo de carregamento = && $$

“Nunca pare, sempre dá para melhorar um pouco mais “ :)

Page 27: Alta Performance em Aplicações Web

https://groups.google.com/forum/#!forum/html5-css3-brasil https://groups.google.com/forum/#!forum/jquery-br https://groups.google.com/forum/#!forum/listaphp https://groups.google.com/forum/#!forum/dojotuba

Page 28: Alta Performance em Aplicações Web

http://developer.yahoo.com/performance/rules.html http://code.google.com/intl/pt-BR/speed/page-speed/docs/rules_intro.html http://prezi.com/xnety6t2emcs/construindo-aplicacoes-web-de-alta-performance-front-end/ http://www.slideshare.net/stoyan/high-performance-web-pages-20-new-best-practices http://stevesouders.com/examples/expression-counter.php http://blog.caelum.com.br/por-uma-web-mais-rapida-26-tecnicas-de-otimizacao-de-sites/ http://www.webperformancetoday.com/2010/06/15/everything-you-wanted-to-know-about-web-performance/

Page 29: Alta Performance em Aplicações Web

Dúvidas?

Page 30: Alta Performance em Aplicações Web

Disponível em:

http://www.slideshare.net/andersonagr

Obrigado!

Contato:

@andersonaguiar

[email protected]