[Logo] Mentawai Forum - Mentawai Web Framework
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 
MentaAjax compactado.  XML
Forum Index -> Comentários Gerais
Author Message
robertwgil


[Avatar]
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
[Email] [MSN]
Lobo


[Avatar]

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

Member
Mentawai Developer
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

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/
[WWW]
IceW0lf


[Avatar]

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
robertwgil


[Avatar]
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
[Email] [MSN]
 
Forum Index -> Comentários Gerais
Go to:   
Powered by JForum 2.1.6 © JForum Team