| Author |
Message |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/05/2009 14:08:09
|
robertwgil
Joined: 23/02/2007 17:22:13
Messages: 745
Location: São Paulo - SP - Brasil
Offline
|
Olá pessoal, agora com um pouco mais de tempo estou com uma idéia e gostaria
da opnião de voces.
A idéia é fazer com que o mentaajax trafegue dados JSON compactado, ou seja,
faço um compactador em java, e um descompactador em javascript e vice versa.
qual o ganho disso? simplesmente agilidade na resposta por que o JSON será bem menor já que será "zipado" durante a transferência.
Já fiz um compactador aqui em java e um descompactador em javascript, oque
posso adiantar é que uma string de 311.000 caracteres foi reduzido a 20.000 caracteres! precisei fazer isso porque no meu projeto corrente, tenho um json de resposta gigantesco.
Oque acham? olhem um exemplo:
Descompactado:
Code:
{"VA":[{"T":111,"AD":"GIG","G":"OCEANAIR","DS":{"DT":"08/05/2009","M":1241779200000,"H":"07:40"},"C"
:"OC","CD":1,"DC":{"DT":"08/05/2009","M":1241782800000,"H":"08:40"},"CO":0,"AO":"GRU","LS":[{"E":"","AD"
:"GIG","V":"6181","DS":{"DT":"08/05/2009","M":1241779200000,"H":"07:40"},"C":"OC","CD":1,"DC":{"DT":"08
/05/2009","M":1241782800000,"H":"08:40"},"CO":0,"AO":"GRU","CL":"S"}],"I":3},{"T":289,"AD":"GIG","G"
:"GOL","DS":{"DT":"08/05/2009","M":1241773800000,"H":"06:10"},"C":"G3","CD":1,"DC":{"DT":"08/05/2009"
,"M":1241777400000,"H":"07:10"},"CO":0,"AO":"GRU","LS":[{"E":"738","AD":"GIG","V":"1660","DS":{"DT":"08
/05/2009","M":1241773800000,"H":"06:10"},"C":"G3","CD":1,"DC":{"DT":"08/05/2009","M":1241777400000,"H"
:"07:10"},"CO":0,"AO":"GRU","CL":"T"}],"I":1},{"T":370,"AD":"GIG","G":"GOL","DS":{"DT":"08/05/2009","M"
:1241790300000,"H":"10:45"},"C":"G3","CD":1,"DC":{"DT":"08/05/2009","M":1241793900000,"H":"11:45"},"CO"
:0,"AO":"GRU","LS":[{"E":"738","AD":"GIG","V":"1792","DS":{"DT":"08/05/2009","M":1241790300000,"H":"10
:45"},"C":"G3","CD":1,"DC":{"DT":"08/05/2009","M":1241793900000,"H":"11:45"},"CO":0,"AO":"GRU","CL":"L"
}],"I":2}],"A":{"TD":111,"TU":370},"S":"OK","MC":{"1":"RIO DE JANEIRO","0":"SAO PAULO"},"menoresVolta"
:[],"SA":{"PANTANAL":{"D":1,"S":"ERROR"},"OCEANAIR":{"D":1,"S":"OK"},"TRIP":{"D":2,"S":"ERROR"},"GOL"
:{"D":4,"S":"OK"},"RICO":{"D":0,"S":"ERROR"},"PASSAREDO":{"D":0,"S":"ERROR"},"WEBJET":{"D":0,"S":"ERROR"
}},"MA":[{"T":289,"AD":"GIG","G":"GOL","DS":{"DT":"08/05/2009","M":1241773800000,"H":"06:10"},"C":"G3"
,"CD":1,"DC":{"DT":"08/05/2009","M":1241777400000,"H":"07:10"},"CO":0,"AO":"GRU","LS":[{"E":"738","AD"
:"GIG","V":"1660","DS":{"DT":"08/05/2009","M":1241773800000,"H":"06:10"},"C":"G3","CD":1,"DC":{"DT":"08
/05/2009","M":1241777400000,"H":"07:10"},"CO":0,"AO":"GRU","CL":"T"}],"I":1},{"T":111,"AD":"GIG","G"
:"OCEANAIR","DS":{"DT":"08/05/2009","M":1241779200000,"H":"07:40"},"C":"OC","CD":1,"DC":{"DT":"08/05
/2009","M":1241782800000,"H":"08:40"},"CO":0,"AO":"GRU","LS":[{"E":"","AD":"GIG","V":"6181","DS":{"DT"
:"08/05/2009","M":1241779200000,"H":"07:40"},"C":"OC","CD":1,"DC":{"DT":"08/05/2009","M":1241782800000
,"H":"08:40"},"CO":0,"AO":"GRU","CL":"S"}],"I":3}],"TP":"N"}
Compactado:
Code:
{"VA":[?T?1?,"AD?"GIG"??:"OCEANAIR?"DS??D??08/05/2009?M?241779????H?07:40"}?C"
???C?:1?D? ?"??????????828??"??8???"CO?0?A??GRU?L???E???????V?6181??????????"?1????????????????????8
??????7???????????????L??}]?I?3????9???????O??????????73????6????3??????????????????1??????????"???8???????166????????????????????????????????7????????????????????"?37????????????????903??"??5????????????93????1????????????"???????2?????????????4???G?????????????????????????"?
?"?:2???T???? 0???K????RIO DE J?E?????S? PAUL??menoresVolta?[?"???NT?A????ERRO???????????T?P???????G?????????????????S?RED???????WEBJE????????M?????????????????????????????????????????????????????????????????????????????????????????1??????????????????????????????????????????????????????????????????????????
???? ???????T??N?
Beeeeeemmm menor não é mesmo?
|
Robert Gil
Coordenador de Desenvolvimento / Administrador de Redes.
Twitter |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/05/2009 14:20:04
|
Lobo
![[Avatar]](/images/avatar/093f65e080a295f8076b1c5722a46aa2.jpg)
Joined: 23/01/2006 02:17:14
Messages: 841
Location: Fortaleza-CE
Offline
|
A idéia é boa Robert !
Trafegar compactado vale mais a pena que usar minifiers no mentawai porque isso o usuário pode usar o seu minifier e/ou querer ler o javascript
mais legível.
[editado]
Gostei não sabia que dava pra fazer esse tipo de coisa para json(compacta) > java | java(compacta) > json e vice-versa.
[/editado]
|
Atenciosamente,
Hélio Frota
Helio Frota
10+ Java Programmer
heliofrota.com
Mentawai Developer |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/05/2009 16:20:25
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
Muito bom !!! A questão não é agilidade, mas a banda que é caríssima. Num site com muito acesso isso vai economizar uma grana, assim como o compactor de HTML economiza.
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/05/2009 15:46:26
|
Ironlynx
Joined: 28/10/2005 17:35:38
Messages: 328
Offline
|
robertwgil, muito boa a idéia!!!
Não só pela banda, mas também pelo tempo de resposta ao usuário.
No último projeto que fiz(usando o menta), eu tinha um relatório que acessava de mais a base de dados, aí um amigo teve a idéia de criar um cache para tacar os dados mais usados(uns 500KB) em memória, e isso evitou umas 25 chamadas por relatório ao banco.
|
http://osereojava.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/05/2009 13:48:01
|
IceW0lf
![[Avatar]](/images/avatar/7cbbc409ec990f19c78c75bd1e06f215.jpg)
Joined: 16/03/2006 08:33:38
Messages: 1546
Location: Brasília
Offline
|
Acho muito boa a ideia, mas também acho legal ser algo optativo como os projetos Jquery, Prototype são... quer compact ? pega... Não então pega full.
Tem gente que com certeza deve personalizar alguma coisa no mentaajax e por exemplo eu acho que deve ser algo selecionável como tu fez no lance do Prototype no config.. loadPrototype="yes" "no"... tem que ser algo nesse sentido.
|
Leiber Wallace
Voixy ::: Soluções em Telecomunicações |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/05/2009 06:39:53
|
robertwgil
Joined: 23/02/2007 17:22:13
Messages: 745
Location: São Paulo - SP - Brasil
Offline
|
Então, na verdade gostaria mesmo é de restruturar o MentaAjax, deixá-lo mais simples de utilizar.
Tenho um projeto do MentaAjax 3 que chamo de M3, hehe...
Estou quase terminando, e quando terminar eu passo o projeto pra voces opnarem.
IceWolf wrote:
Acho muito boa a ideia, mas também acho legal ser algo optativo como os projetos Jquery, Prototype são... quer compact ? pega... Não então pega full.
Com certeza, na verdade será um metodo like setUrl que voce setara se quer ou não compactar os dados e no renderer voce tambem passara um boolean.
O problema é que o atual mentaajax deve ser mantindo, porém depreciado.
existira algo como o atual
<mtw:ajaxConfig /> e o novo <mtw:m3 /> se o cara quizer utilizar a nova versão, ele utiliza apenas o m3
Não sei se estou viajando, mas é mais ou menos esta a idéia.
|
Robert Gil
Coordenador de Desenvolvimento / Administrador de Redes.
Twitter |
|
|
 |
|
|
|
|