Quanto maior a velocidade de acesso à internet, menor a paciência do usuário. E podemos confirmar isso por nós mesmos. Se em dois, três segundos não começa a aparecer na tela o conteúdo, saímos do site ou mudamos de aba.
Não adianta um design fora de série e recursos diversos, se o carregamento for vagaroso. Outro ponto negativo para um website ‘pesado’, é o custo da hospedagem.
A velocidade de carregamento é um aspecto que merece atenção e pode ser melhorada com medidas simples. Vou apresentar aqui algumas melhorias que podem ser feitas nesse sentido. Serão observados apenas aspectos do desenvolvimento front-end, como carregamento dos arquivos e melhorias no HTML, CSS e javascript, sem aprofundamentos na programação.
Separar Apresentação Da Formatação
Regras CSS inline aumentam o tamanho do arquivo e dificultam a manutenção. E são tão abomináveis quando o IE6.
Uma página com o código bem estruturado invariavelmente vai precisar de menos código. E reservando um arquivo para as folhas de estilo, você pode trabalhar o efeito cascata e múltiplos seletores. Mais um arquivo que terá tamanho menor.
Falando sobre CSS, evite utilizar expressões para atribuir valores às propriedades. O arquivo CSS vai rodar javascript! E o que poucos sabem é que a expressão será executada a qualquer ação do usuário, contando aí um simples arrastar do mouse.
Conforme a estrutura vai sendo carregada, o usuário já fica ocupado analisando os elementos que aparecem. E quando ele vê, esta tudo pronto.
A tempo: não utilize @import para incluir arquivo CSS na página, pois no IE, isso causa um atraso na formatação e por alguns segundos a página é mostrada apenas com a estrutura HTML.
Javascript
Se você, igual a mim, gosta de criar animações e muita interação usando javascript, pode acabar com um arquivo de até centenas de linhas. E ainda tem a endentação e linhas em branco para organizar o código…
Para reduzir o tamanho dos arquivos javascript, você pode utilizar o serviço do website JS Minifier. Basicamente, serão retirados os espaços em branco. Para scripts extensos, simplesmente tirando os espaços em branco, é possível reduzir pela metade o tamanho do arquivo.
Vejamos outro aspecto sobre arquivos javascript. Frameworks, como jQuery, somente rodam o script depois que a estrutura da página foi carregada. E isso faz todo o sentido, já que não adiante ter efeitos para aplicar, se os elementos nem foram carregados ainda.
Sendo assim, incluir os arquivos javascript no rodapé da página é uma boa prática. Além do motivo exposto acima, ficando por último, ele não vai atrapalhar o carregamento de outros itens, como imagens.
Imagens
Uma imagem de qualidade e ao mesmo tempo com tamanho de arquivo baixo é uma cruzada para alguns web designers. Já foram feitos diversos artigos comparativos entre os formatos de arquivos. E nem sempre o ‘.gif’ é o menor ou o ‘jpeg’ o maior.
Existem serviços online que comprimem os arquivos sem causar perda da qualidade. Um que utilizo e recomendo é o PunyPNG que apesar do nome, comprime também ‘jpe’ e ‘gif’. E o legal é que mostra quanto por cento menor o arquivo ficou em relação ao original.
Se você cria os layouts no Photoshop, aí vai uma dica que funciona tanto quanto o serviço online. Para salvar a imagem, vá em Arquivo – Save for Web and Devices (Ctrl + Alt + S) e teste com as opções do lado direito da caixa de diálogo. Experimente as extensões e níveis de compressão no caso do JPEG. Onde a imagem é mostrada, na parte inferior mostra o tamanho final do arquivo.
Para a web não precisa criar imagem com mais de 72dpi. Ao salvar escolha 80% de qualidade no Photoshop e já será o suficiente. Se a imagem for miniatura, 70% é o bastante.
Quando as imagens serão planos de fundo, você pode criar um arquivo com diversas e depois utilizar a propriedade CSS background-position para escolher onde elas serão posicionadas. Além do arquivo menor, as requisições ao servidor também serão diminuídas.
Se você fizer o que sugeri, e é altamente recomendado, você estará usando a técnica CSS Sprite. Um serviço online que coloca as imagens em um único arquivo e ainda te mostra como configurar o background-position é o CSS Sprites.
Antes de criar um sprite analise as imagens que serão unidas. Crie sprites conforme as páginas. Desta maneira você evita carregar na página inicial uma imagem que somente será usada na página de produtos.
Requisições HTTP
Enquanto a página é carregada, o navegador precisa baixar os elementos para a máquina do usuário. Esse ‘pedido’ de dados do navegador para o servidor é conhecido como requisição. Cada imagem e arquivo, precisa de uma requisição.
O problema é que os navegadores limitam o número de requisições para o domínio. É um número baixo, como duas requisições simultâneas. Até que um dos dois arquivos não for baixado, nada mais é. Uma grande limitação.
Diminuir o número de requisições HTTP feitas ao servidor é um dos principais melhoramentos que devem ser feitos no website. Algumas das técnicas utilizadas para este fim estão:
- Simplificar o design – Nem sempre um design intrincado é melhor. Aplique os conceitos de design simples e eficiente. Isso possibilitará utilizar CSS para criar alguns efeitos.
- CSS Sprite – Além da potencial diminuição no tamanho do arquivo, somar as imagens exige menos requisições ao servidor.
- Somar arquivos – Apesar de a organização ser importante, criar um arquivo para cada função ou grupo de funções tem a desvantagem de exigir mais requisições ao servidor. Tente colocar tudo em um arquivo, comentando as seções você não perde a vantagem da organização.
- Inclua somente arquivos úteis à pagina – Antes de incluir o arquivo na página, analise se ele será utilizado por ela. Não faz sentido importar na página inicial um script que será utilizado somente na página de contato.
- Um truque para aumentar as requisições disponíveis para seu website é criar subdomínios para hospedar alguns arquivos. Por exemplo, imagens.exemplo.com.br para as imagens. Com isso você ganha mais duas requisições.
Tenha cuidado para não criar muitos subdomínios ou seus site será ‘punido’ pelo navegador e não haverá melhora na velocidade.
Expires e Cache-Control
Os navegadores reservam uma pasta para guardar os arquivos baixados e desta forma tornar o carregamento futuro deles mais rápido e sem precisar requisitá-los ao servidor.
Você pode definir o tempo que ele ficará guardado no computador do usuário configurando os cabeçalhos Expires e Cache-Control dos arquivos.
Esta medida somente surtira efeito quando a página for visitada novamente. Então fará mais diferença para websites com retorno de visitantes.
Um cuidado especial ao utilizar o Expires é que, se você definiu a data de expiração para 2020 por exemplo, mas precisou modificar o arquivo, terá que renomeá-lo pois o navegador continuará interpretando o que foi guardado.
Conclusão
Alguns web designers criam páginas pesadas com o argumento de que a velocidade atual da conexão suporta tranquilamente arquivos pesados. Para estes lembro que o visitante pode estar acessando outros websites simultaneamente ou baixando arquivos e com isso a largura de banda não estará toda a disposição de suas criações.
As medidas que apresentei não tem apenas o papel de tornar o carregamento das páginas menor, mas aumentar a eficiência. Acredito que você concorda comigo que são melhoras de fácil implementação e resultado significativo.
16 Responses
Muitas da coisas ditas aqui não sabia,obrigado pelo exclarecimento.
Quanto ao PunyPNG vou testar posi quando envio minha imagem para comprimir perde muita qualidade e os agregadores a grande parte exigem que seja bem pequena a imagem.
realmente o css deveria ser o Marido do html porque ele é fantástico a cada dia que passa gosto mais,melhor que fazer em programas é simplesmente digitas um codigo e ter o mesmo resultado..
Abraço!
Olá Rafael! Eu recomendo qualquer artigo do Maicon Sobczak! São excelentes. Um Abraço Rui Soares
Excelente artigo. Maicon Sobczak está de parabéns pois realmente demonstra dominar o assunto !!
Olá Natanael! Obrigado e concordo. Um Abraço Rui Soares
Muito boa matéria, bem resumida e super explicada.
Abraços forte
Olá! Muito obrigado! Eu recomendo os artigos do Maicon Sobczak! Se alguém precisar dum programador… Um Abraço Rui Soares
Obrigado pelo suporte pessoal. A idéia é sempre trazer conteúdo relevante.
Olá Maicon! Os elogios são merecidos! Um Abraço Rui Soares
Um artigo bem elaborado. Realmente somos assim mesmo, entramos e saimos de um blog se ele for pesado de mais. Devemos pensar nos nossos visitantes. Por exemplo não é qualquer um que tem uma internet de qualidade, muitos ainda usam internte discada outros Modem 3g. Para essas pessoas se torna um desafio e treinamento para ter paciência.
Adorei o artigo e o blog parabéns.
Olá Alexandre! Bem vindo e obrigado pelo seu comentário! Um Abraço Rui Soares
Olá Marivan! Obrigado pelo seu comentário. Um Abraço Rui Soares
Excelente artigo. Bem simples e direto, como tem que ser.
Eu sigo a maioria das dicas.
Eu crio o HTML das páginas manualmente, pois assim sei o que estou fazendo, facilitando a manutenção, pois coloco no código apenas o necessário. Desenvolvo o layout de uma página e seus elementos e depois aplico às outras.
Olá Evandro. O artigo foi escrito pelo Maicon Sobczak, que é um programador experiente. Recomendo os artigos dele! Um Abraço Rui Soares
Olá Felipe! Várias ideias: 1. É um fator pouco relevante neste momento e que afeta menos de 1% das queries de pesquisa. Eu diria que está a afetar os websites MUITO lentos. 2. O próprio Matt Cutts refere que a informação que consta no Webmaster Tools sobre a velocidade do website está muito próxima da informação que estão utilizando. Portanto, eu, no seu caso, não ficaria preocupado. Mas, ficaria atento. E você só tem a ganhar se o seu website entrar mais rápido. 3. Você tem aqui uma ferramenta do Google que você deve utilizar para analisar a velocidade do seu website:http://code.google.com/intl/pt-BR/speed/page-spee… No curto prazo, eu acho que o seu website não será afetado. Mas, este fator foi agora introduzido. Amanhã, poderá ter um peso um pouco maior. E, se o Google Webmaster diz que o website está lento, é este o momento para você fazer alguma coisa em relação a isso. Senão, mais tarde, pode afetar o seu posicionamento no Google. Um Abraço Rui Soares
legal
Excelente, artigo está de Parabéns !