07 Outubro 2008
Esta evolução fez com que o tempo de carregamento das páginas aumenta-se consideravelmente. Felizmente com esta evolução ocorreu também um aumento da velocidade dos serviços contratados para fornecimento de Internet. No entanto apesar do aumento da velocidade contratada muitas vezes as páginas demoram mais de 10 segundos a abrir o que para o internauta é um bilhete para fechar o Browser.
Estes tempos de load excessivos estão muitas vezes associados ao load de enormes ficheiros CSS e Javascript. Ultimamente tenho falado muito de Frameworks Javascript, a titulo de exemplo a framework Mootools 1.2 possui cerca de 90KB (descomprimida) e o Prototype 120KB. Agora será que tempo que estas framework levam a descarregar compensam os efeitos por elas produzidos? Talvez sim... mas não seria melhor se houvesse uma forma de comprimir ainda mais estes ficheiros?Já anteriormente havia abordado o assunto do GZIP no artigo Acelere o seu website ou blog, no entanto neste artigo vou optar por uma solução diferente e talvez mais eficiente. Uma vez que vai funcionar em todos os webservers baseados em Apache (independentemente da configuração fornecida pela empresa de alojamento), reduz o consumo de CPU do servidor além de aumentar drasticamente o tempo de load de alguns sites.
#1 - Siga as intruçõesdo ponto 3 do artigo que lhe referi nesta página anteriormente. Ou seja utilize o Dojo e o Dean Packeer, para comprimir o código do seu ficheiro .js. No caso da Framework Mootools 1.2 o tamanho após esta compressão deverá rondar os 56KB (cerca de 35KB a menos).
#2 - Faça download do programa 7zip e comprima o ficheiro resultante do ponto anterior. Deverá obter um ficheiro de extensão .js.gz, cujo tamanho no caso do Mootools 1.2 deverá rondar os 25KB (65KB menos que o original). Faça o upload para o seu servidor.
#3 - Realizar o load da versão gzip do ficheiro ao invés da versão descomprimida:
Em teoria seria só necessário substituir o código normal de chamada ao script:
<script type="text/javascript" src="/mootools.js"></script>
<script type="text/javascript" src="/mootools.js.gz"></script>
<FilesMatch "\\.js.gz$">
ForceType text/javascript
Header set Content-Encoding: gzip
</FilesMatch>
<FilesMatch "\\.js$">
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} !".*Safari.*"
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{REQUEST_FILENAME}.gz -f
RewriteRule (.*)\.js$ $1\.js.gz [L]
ForceType text/javascript
</FilesMatch>
Outubro 07, 2008