| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/11/2009 10:58:48
|
davidbuzatto
Forum Spammer
![[Avatar]](/images/avatar/7ba6d33c373fea56b7258003b16c68e5.jpg)
Membro desde: 07/08/2004 23:47:57
Mensagens: 2108
Localização: São Carlos - SP
Offline
|
Pessoal, o Google acabou de liberar algumas bibliotecas que eles usavam internamente. Eu partilarmente acho que vou usar o Closure Compiler, ainda preciso testar.
Millions of Google users worldwide use JavaScript-intensive applications such as Gmail, Google Docs, and Google Maps. Like developers everywhere, Googlers want great web apps to be easier to create, so we've built many tools to help us develop these (and many other) apps. We're happy to announce the open sourcing of these tools, and proud to make them available to the web development community.
...
Mais detalhes em: http://googlecode.blogspot.com/2009/11/introducing-closure-tools.html
|
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler) |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/11/2009 11:20:25
|
davidbuzatto
Forum Spammer
![[Avatar]](/images/avatar/7ba6d33c373fea56b7258003b16c68e5.jpg)
Membro desde: 07/08/2004 23:47:57
Mensagens: 2108
Localização: São Carlos - SP
Offline
|
Pessoal, estou usando o Closure Compiler aqui e é simplesmente sensacional!
Meu projeto tem 11 arquivos javascript com 210 KB no total.
Depois do build com WHITESPACE_ONLY cai para 89 KB. Com SIMPLE_OPTIMIZATION cai para 78 KB!!!
Não estou usando ADVANCED_OPTIMIZATION pq ele renomeia muita coisa que não pode e é inviável eu configurar para ele não fazer isso (uso muitas bibliotecas no meu projeto). A não ser que eu dê build das bibliotecas junto, mas ai fica muita coisa...
Enfim, para quem usa NetBeans e quiser testar, primeiramente configure o compiler.jar para ir para o build da aplicação e insira o seguinte código no build.xml do projeto.
Nesse exemplo, pego 3 arquivos (arquivo1, arquivo2 e arquivoN), otimizo os três e coloco o resultado em application-min.js.
Para mais opções vejam a documentação no site.
[]´s
This message was edited 1 time. Last update was at 07/11/2009 11:36:23
|
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/11/2009 12:01:59
|
Sergio Lopes
Moderador
![[Avatar]](/images/avatar/8232e119d8f59aa83050a741631803a6.jpg)
Membro desde: 17/11/2003 00:22:10
Mensagens: 1133
Localização: São Paulo - SP
Offline
|
sabe a diferenca entre o closure compiler e o yui compressor? o closure faz algo a mais? sera q eh mais eficiente?
e aquela biblioteca closure eh feinha hein hehehehe prefiro muito mais o jquery
|
Sérgio Lopes (twitter: @sergio_caelum)
Curso Java | Apostilas Java | Arquitetura Java | Curso Rails |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/11/2009 12:18:14
|
davidbuzatto
Forum Spammer
![[Avatar]](/images/avatar/7ba6d33c373fea56b7258003b16c68e5.jpg)
Membro desde: 07/08/2004 23:47:57
Mensagens: 2108
Localização: São Carlos - SP
Offline
|
Sergio Lopes wrote:sabe a diferenca entre o closure compiler e o yui compressor? o closure faz algo a mais? sera q eh mais eficiente?
e aquela biblioteca closure eh feinha hein hehehehe prefiro muito mais o jquery 
Então Sergio, sinceramente não sei a diferença pois não cheguei a usar o YUI compressor. Já tentei integrar o JSBuilder (do pessoal do ExtJS) no meu projeto, mas não tive muito sucesso e desencanei. Ontem dando uma olhada no Reader eu vi Closure Compiler e decidi testar e gostei. Eu ia testar o YUI compressor essa semana, mas como já coloquei o Closure Compiler para funcionar, acho que não vou mais alterar isso.
Eu nem olhei a biblioteca deles justamente por ser fã de carteirinha do jQuery. No meu caso o que foi mais útil mesmo foi o Compiler.
[]´s
|
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/11/2009 13:02:29
|
davidbuzatto
Forum Spammer
![[Avatar]](/images/avatar/7ba6d33c373fea56b7258003b16c68e5.jpg)
Membro desde: 07/08/2004 23:47:57
Mensagens: 2108
Localização: São Carlos - SP
Offline
|
Sergio Lopes wrote:sabe a diferenca entre o closure compiler e o yui compressor? o closure faz algo a mais? sera q eh mais eficiente?
e aquela biblioteca closure eh feinha hein hehehehe prefiro muito mais o jquery 
Oi de novo Sergio.
Decidir testar aqui o YUI compressor. Ao meu ver até agora o Closure Compiler é melhor quanto ao uso e a quantidade de opções para se passar para o compressor. O YUI tem pouquíssimas opções e até agora não achei uma forma de colocar vários arquivos em um. Tem que fazer arquivo por arquivo.
Uma vantagem do YUI compressor é que ele compacta css tbm.
Algumas discussões quanto a falta da funcionalidade de juntar arquivos:
http://yuilibrary.com/projects/yuicompressor/ticket/1872317
http://yuilibrary.com/forum/viewtopic.php?p=4633
Até agora ainda estou achando o Closure Compiler melhor. Vou comparar os arquivos gerados e já posto o que obtive.
[]'s
|
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/11/2009 13:22:59
|
davidbuzatto
Forum Spammer
![[Avatar]](/images/avatar/7ba6d33c373fea56b7258003b16c68e5.jpg)
Membro desde: 07/08/2004 23:47:57
Mensagens: 2108
Localização: São Carlos - SP
Offline
|
Pessoal, segue uma comparação bem simples entre o Closure Compiler e o YUI Compressor.
Arquivo usado para compressão: application.js
Tamanho: 84.296 bytes ~ 82,3 KB
Arquivo comprimido com YUI Compressor: application-min-yui.js
Tamanho: 33.966 bytes ~ 33,1 KB
Arquivo comprimido com Closure Compiler: application-min-closure-w.js
Modo de compressão: WHITESPACE_ONLY
Tamanho: 39.607 bytes ~ 38,6 KB
Arquivo comprimido com Closure Compiler: application-min-closure-so.js
Modo de compressão: SIMPLE_OPTIMIZATIONS
Tamanho: 33.318 bytes ~ 32,5 KB
Arquivo comprimido com Closure Compiler: application-min-closure-ao.js
Modo de compressão: ADVANCED_OPTIMIZATIONS
Tamanho: 24.821 bytes ~ 24,2 KB
Conclusões:
- O tamanho dos arquivos gerados quando comparado o YUI compressor com o Closure Compiler em modo SIMPLE_OPTIMIZATION não varia muito.
- O código ofuscado gerado é praticamente o mesmo.
- O Closure Compiler tem muito mais opções que o YUI compressor.
- O YUI compressor também otimiza código css.
Ainda fico com o Closure Compiler.
[]´s
|
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/11/2009 14:06:40
|
victorcosta
JavaBaby
![[Avatar]](/images/avatar/42c88875bb90aeed57f01609fef5d9d7.png)
Membro desde: 07/01/2007 01:29:37
Mensagens: 95
Localização: Recife - PE
Offline
|
Tem que testar também o tamanho do arquivo depois do gzip, que faz uma diferença brutal
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/11/2009 20:06:54
|
Sergio Lopes
Moderador
![[Avatar]](/images/avatar/8232e119d8f59aa83050a741631803a6.jpg)
Membro desde: 17/11/2003 00:22:10
Mensagens: 1133
Localização: São Paulo - SP
Offline
|
boa, david! valeu pelos testes
e victor, tem razao sobre o gzip. precisa ver se o otimizador usado melhora ou piora o trabalho do gzip
e eu tava lendo sobre o closure e uma opcao pareceu interessante: ele remover codigo nao chamado. q eu saiba o yui nao faz isso
|
Sérgio Lopes (twitter: @sergio_caelum)
Curso Java | Apostilas Java | Arquitetura Java | Curso Rails |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/11/2009 23:35:25
|
davidbuzatto
Forum Spammer
![[Avatar]](/images/avatar/7ba6d33c373fea56b7258003b16c68e5.jpg)
Membro desde: 07/08/2004 23:47:57
Mensagens: 2108
Localização: São Carlos - SP
Offline
|
Pessoal, falando em gzip, estou compactando o resultado do Closure Compiler, mas o navegador simplesmente não consegue ler o arquivo .gz.
Minha página tem simplesmente um <script type="text/javascript" src="${pageContext.request.contextPath}/javascript/application-min.js.gz"></script>
Como eu faria para funcionar? Ja procurei bastante e não achei uma solução que funcione. Na verdade consegui algo passando por um servlet primeiro (setando o content-encoding para gzip. Não tem uma forma mais simples?
[]´s
This message was edited 1 time. Last update was at 08/11/2009 00:01:35
|
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/11/2009 00:00:04
|
victorcosta
JavaBaby
![[Avatar]](/images/avatar/42c88875bb90aeed57f01609fef5d9d7.png)
Membro desde: 07/01/2007 01:29:37
Mensagens: 95
Localização: Recife - PE
Offline
|
Na aplicação você deixa o arquivo .js normal, sem gzip O gzip você vai configurar no Apache, habilitando o mod_deflate e adicionando isso no httpd.conf Assim o Apache vai automaticamente gzipar os htmls, javascripts, css enviados, caso os browser suportem (praticamente todos, até o IE6) Pra conferir o tamanho final dos arquivos enviados você pode usar algo como o plugin Firebug/YSlow do firefox
This message was edited 1 time. Last update was at 08/11/2009 00:02:11
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/11/2009 00:03:09
|
davidbuzatto
Forum Spammer
![[Avatar]](/images/avatar/7ba6d33c373fea56b7258003b16c68e5.jpg)
Membro desde: 07/08/2004 23:47:57
Mensagens: 2108
Localização: São Carlos - SP
Offline
|
victorcosta wrote:Na aplicação você deixa o arquivo .js normal, sem gzip
O gzip você vai configurar no Apache, habilitando o mod_deflate e adicionando isso no httpd.conf
Assim o Apache vai automaticamente gzipar os htmls, javascripts, css enviados, caso os browser suportem (praticamente todos, até o IE6)
Pra conferir o tamanho final dos arquivos enviados você pode usar algo como o plugin YSlow do firefox
É que eu não uso o Apache e sim o Tomcat para desenvolvimento. A minha aplicação vai rodar no Glassfish em produção.
Consegui fazer algo passando por um servlet, mas não gostei de como ficou.. Acho que um filtro tbm pode resolver minha questão... Vou dar uma testada.
|
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/11/2009 00:22:17
|
Sergio Lopes
Moderador
![[Avatar]](/images/avatar/8232e119d8f59aa83050a741631803a6.jpg)
Membro desde: 17/11/2003 00:22:10
Mensagens: 1133
Localização: São Paulo - SP
Offline
|
cada servidor tem uma configuracao especifica pra gzip (tomcat/jetty etc). acho melhor configurar isso no deploy que fazer vc mesmo
|
Sérgio Lopes (twitter: @sergio_caelum)
Curso Java | Apostilas Java | Arquitetura Java | Curso Rails |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/11/2009 00:23:22
|
davidbuzatto
Forum Spammer
![[Avatar]](/images/avatar/7ba6d33c373fea56b7258003b16c68e5.jpg)
Membro desde: 07/08/2004 23:47:57
Mensagens: 2108
Localização: São Carlos - SP
Offline
|
Sergio Lopes wrote:cada servidor tem uma configuracao especifica pra gzip (tomcat/jetty etc). acho melhor configurar isso no deploy que fazer vc mesmo
Pensei que não tinha como configurar no Tomcat. Como que eu poderia fazer isso Sergio?
|
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/11/2009 00:28:58
|
Sergio Lopes
Moderador
![[Avatar]](/images/avatar/8232e119d8f59aa83050a741631803a6.jpg)
Membro desde: 17/11/2003 00:22:10
Mensagens: 1133
Localização: São Paulo - SP
Offline
|
http://tomcat.apache.org/tomcat-6.0-doc/config/http.html
|
Sérgio Lopes (twitter: @sergio_caelum)
Curso Java | Apostilas Java | Arquitetura Java | Curso Rails |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/11/2009 00:40:32
|
davidbuzatto
Forum Spammer
![[Avatar]](/images/avatar/7ba6d33c373fea56b7258003b16c68e5.jpg)
Membro desde: 07/08/2004 23:47:57
Mensagens: 2108
Localização: São Carlos - SP
Offline
|
Sergio Lopes wrote:http://tomcat.apache.org/tomcat-6.0-doc/config/http.html
Obrigado Sergio, já consegui configurar aqui
[]´s
|
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler) |
|
|
 |
|
|