Compressão de JS e CSS para aplicações Rails em produção

Posted by Leonardo Thu, 23 Aug 2007 19:25:00 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!

Posted in , ,  | Tags , , , ,  | 2 comments

Comments

  1. Edgar said 12 days later:
    Eu ainda nao comecei a desenvolver apps com o RoR. Já estou lendo muito sobre as pequenas dificuldades e coisas que faltam no Rails. Isso me assusta um pouco, dizem que a aplicação pode ficar lenta por causa do CGI, que ele gasta mais banda de transmissão (uma coisa assim!) fazendo sua banda de transferência ficar pequena. Mas isso não me desanima, eu confio no poder deste framework de código aberto. E sei que pra todo problema há uma solução. O RoR ainda é jovem e está em expansão, nossos programadores aderindo e nossos contribuidores no desenvolvimento. Acho que o Rails tem tudo pra melhorar ainda mais, ele não é perfeito como outras plataformas de desenvolvimento também não são.
  2. Tiago Albineli Motta said 12 months later:
    Não acho que seja neurose utilizar esses recursos. No caso de uma aplicação empresarial interna, dependendo da empresa talvez não haja necessidade. Mas no caso de uma aplicação web para o público externo, isso é muito importante.

(leave url/email »)

   Preview comment