Mesmo nesta era de banda larga massificada, não há nada que me irrite mais, como utilizador, do que esperar dois ou três segundos que um site abra. Sobretudo, quando o que falta vir é o CSS da página, por exemplo, ou imagens sem tamanho definido que rebentam com o layout.
Como tal, dedico bastante tempo a melhorar a performance dos sites que desenvolvo. Na realidade, já não dedico assim tanto tempo, visto que entretanto o processo foi agilizado de tal forma que apenas dois ou três parâmetros têm que ser ajustados caso a caso.
As duas ferramentas absolutamente imprescindíveis para este trabalho são extensões para a extensão Firebug do Firefox (sim, extensões para a extensão), o YSlow da Yahoo e o Page Speed da Google. A maioria das regras são comuns a ambos, algumas novas, outras com parâmetros de avaliação diferentes. O ideal é obter uma pontuação o mais próxima de 100 possível. Os resultados do DreamsInCode são os seguintes:
Como podem ver, as pontuações são bastante razoáveis. Como termo de comparação, e só para ver como os principais responsáveis pelas ferramentas se safam nas suas próprias pontuações, o Google.com (apenas pesquisa, isto é, não é o iGoogle) saca 91 pontos no YSlow e 90 pontos no Page Speed; o Yahoo.com tira apenas 76 pontos no YSlow e 86 no Page Speed. Isto acaba por ser compreensível, visto que o Yahoo é um portal, enquanto que o Google tem pouco mais que uma caixa de pesquisa e o logótipo. Já agora, o nosso Sapo.pt, aqui analisado na qualidade de portal mais visitado da nossa web, fica-se pelos 55 pontos no YSlow e pelos 81 no Page Speed. Bad frog, bad! De salientar que as pontuações podem variar alguns pontos, dependendo se os testes são feitos com a cache limpa ou não, por exemplo.
Alguns dos pontos são simples e básicos para qualquer webdev que não tenha começado ontem, como por exemplo, não duplicar CSS e JavaScript, servi-los exteriormente à página, ter o CSS no head da página… Coisinhas triviais. Outras, como, por exemplo, servir conteúdo estático de um domínio sem cookies ou servir os conteúdos em gzip já implicam mais trabalho e melhor compreensão do funcionamento da coisa. É a sobre esses pontos que colocarei algumas postas nos próximos dias.