Posted by Leonardo Thu, 23 Aug 2007 20:41:02 GMT
Para quem é um pouco neurótico com performance como eu, Scott Becker fez um excelente plugin, o AssetPackager, para comprimir e agrupar arquivos JS e CSS. O plugin foi baseado no artigo de Cal Henderson chamado Serving Javascript Fast e utiliza o Javascript Minifier criado por Douglas Crockford e portado para o Ruby por Uladzislau Latynski.
O plugin permite que você desenvolva sua aplicação com quantos arquivos JS e CSS você quiser e, na hora de passar sua aplicação para produção, basta rodar um rake task para comprimir e agrupar seus arquivos baseado na configuração que você faz em um arquivo YAML. O helper que se utiliza nos views chama os arquivos separados, se estiver em desenvolvimento, e chama os arquivos agrupados, se estiver em produção.
Outra característica deste plugin é a criação dos arquivos agrupados com um timestamp ou SVN Revision, se existir, no prórpio nome do arquivo e não como querystring, uma vez que nem todos os browsers colocam arquivos com querystring no cache. Dessa forma, o browser pode cachear o arquivo correto e, caso haja alguma alteração, o nome do arquivo mudará forçando o browser a requisitar a nova versão.
Para mim, comprimir e agrupar esses arquivos é essencial para economizar banda, reduzir a quantidade de requests e acelerar o carregamento das páginas. Ainda pode resolver a questão de versão incorreta desses arquivos no cache do browser do usuário. Realmente muito bom!
