Javascript compressé dans gmail

Nouveau WRInaute
Bonjour, après avoir testé le site gmail avec firebug je constate que le javascript est compressé (non indenté) et que le nom des variables ont été remplacés par des noms plutot abstrait.

Est ce que quelqu'un sait comme faire le meme genre de chose et quel logiciel utiliser?

Existe t'il un moyen de réindenter le code javascript pour y voir plus clair?
 
WRInaute discret
salut ;)

Oui ca s'appelle offusquer le code : cacher no de variable et noms de fonctions

en général, en plus il est compacté : tout en une ligne

il ya plusieurs methodes de compression dont "packed", "jsMin".. pour ma part je préfere YUICompressor de yahoo car la methode de compression n'utilise pas un eval bien bourrin.. c'est clean et sans bug

packed est à éviter..

Pour décompacter le code, oui des logiciels existent (firebug ou webdevelopper le fait je crois)
par contre pour desoffusquer non.. les noms de variable / fonctions sont totalement remplacé et aucune réferences à leur nmo d'origine n'est gardé donc...

Voila ;)

ps: j'ai une super plugin firefox qui a plein de fonctions dans le genre d'ailleur (regroupe toutes les fonctions JS d'un site en un seul fichier avec tout a la suite etc..) je connais plus son nom par contre je le mettrais ici demain quand je serais au taff :p
 
Nouveau WRInaute
Sur firebug chez moi le code javascript reste en ligne seul le code html est remis en forme et je viens de tester web developer mais le code javascript reste en ligne aussi.

L'interet de la compression est t'il de gagner en taille en reduisant les noms de variables ou à bloquer les regards indiscrets? Les 2 ?


Extrait de code en ligne:

Code:
try{{var Me=[],Kj=0,zn="",qt=false,Lj=null;function rZ(){qt=true;Jj(false,-1)}function Jj(a,b){if(ha()||!qt){return}yn();if(b==-1){b=500}Lj=x(null,function(){if(Wr()){Jj(a,b)}else{nZ(a,b)}},b)}function yn(){if(Lj!=null){ra(null,Lj);Lj=null}}function nZ(a,b){try{var c=pa();if(!c){return}if(!O[sa]){return}var d=$d,e=WG(d,a);if(e<0||e>=O.length){return}var f=-1;if(!(e<0||e>=O.length)&&O[e][17]){f=O[e][0]}var g=X1();g[g.length]=f;var h=[];for(var i in g){var j=au(c,g[i],null);j.prf=1;j.pft=O[eg(g[i])][18];
mg(j);h[i]=W(j)}for(var k in Me){if(Kj>10&&G6(h,k)==-1){$E(k)}}Gd(Kj<=10);f=-1;var k;for(var i in g){k=h[i];if(!(k in Me)&&g[i]!=ma){f=g[i];var l=O[eg(g[i])][18];q("cv-pfr-"+(l?l:""));break}}if(f==-1){return}var m=function(s,v,K){pZ(s,v,f,K);if(Lj!=null){Jj(a,b+500)}};Yd(k,m)}catch(p){GA(p)}}function pZ(a,b,c,d){if(b){if(a.responseText==""){qt=false;return}mZ(d,a.responseText)}}function sZ(a){q("cv-p");var b=Bv(zn);q("cv-pfh-"+b.pft);var c=b.th;q("cv-pfn-"+V1(c));try{var d=EI(Me[zn])}catch(e){xn(c);
var f=au(null,c,sa+X[1]);f.qt=X[10];var g=Bv(zn);f[M]=g[M];var h=W(f);Jl=h;return}lu(c);var i=a.name,j=Qd[i];LD(j,a,i,d[0])}function xn(a){for(var b in Me){if(Bv(b).th==a){$E(b)}}}function aF(a){var b=a.Gj();for(var c in b){xn(b[c])}}function mZ(a,b){Me[a]=b;Kj++}function $E(a){delete Me[a];Kj--}function false}};var ls=[],gC=[];function CW(a,b){gC[a]=b}function IW(){hE(false)}function DW(a,b,c){try{if(ls[b]){return}window.eval(c);var d=ls[b];if(d&&d.init){d.init(a)}}catch(e){GA(e)}}function ks(a,b){ls[a]=b}function y(a,b){window[a]=b}function Fm(a){return Bu("lm",a)+Bu("ver",gC[a])}var Oe=null;function HW(a,b,c){var d=null;if(Oe){d=Oe.viewHandler}else{a+=Fm("m_prefs")}Ic(De("prefs"),a,b,d,true,c)}var xU(Ao(a)-(b?b:0),An(a)+(c?c:0),Al(a)+(d?d:0),Am(a)-(e?e:0))};_B_Progress(66,67)}catch(e){_B_Err(e)}
 
WRInaute discret
Le compactage : supprimer les commentaires, les espaces inutiles, retours à la ligne.. ca sert essentiellement a gagner en poids

l'offusquage aussi car les noms de variables et fonctions sont plus courts en caracteres.. Mais il est claire que si tu veux planquer ton code c'est pratique..

Quoi qu'un developpeur qui n'a pas trop froid aux yeux pourra aisement s'y retrouver dans le code à l'aide d'un bon editeur et de sa fonction "rechercher"

Donc on gagne en poids et 95% des regards indiscrets sont bloqués

ps:pour exemple, en compressant mes scripts JS je suis passé de 150ko à 50ko donc un rapport de 1/3, pas négligeable ..
 
Discussions similaires
Haut