Dean Edwards ha desarrollado un empaquetador para javascript, con el cual podemos, minimizar nuestro código de una excelente forma, aquí les dejo un ejemplo:
Codigo original:
var Reemplazar=function(string,search,repleace){return Cad_reemplazada=string.replace(search,repleace);}var _ID=function(ID){var Id=document.getElementById(ID);return Id;}
var Texto_opciones=function(ID)
{
var Text=ID.options[ID.selectedIndex].text;
return Text;
}
function Acentos(Text)
{
var cadena=”";
var codigo=”";
for (var j = 0; j < Text.length; j++)
{
var Char=Text.charCodeAt(j);
switch(Char)
{
case 225:
cadena+=”a”;
break;
case 233:
cadena+=”e”;
break;
case 237:
cadena+=”i”;
break;
case 243:
cadena+=”o”;
break;
case 250:
cadena+=”u”;
break;
case 193:
cadena+=”A”;
break;
case 201:
cadena+=”E”;
break;
case 205:
cadena+=”I”;
break;
case 211:
cadena+=”O”;
break;
case 218:
cadena+=”U”;
break;
case 241:
cadena+=”n”;
break;
case 209:
cadena+=”n”;
break;
default:
cadena+=Text.charAt(j);
break;
}
codigo+=”_”+Text.charCodeAt(j);
}
//alert(“codigo”+codigo+” cadena=>”+cadena);
return cadena;
}
Despues de empaquetarlo:
var Reemplazar=function(a,b,c){return Cad_reemplazada=a.replace(b,c)}var _ID=function(a){var b=document.getElementById(a);return b}var Texto_opciones=function(a){var b=a.options[a.selectedIndex].text;return b}function Acentos(a){var b=”";var c=”";for(var j=0;j<a.length;j++){var d=a.charCodeAt(j);switch(d){case 225:b+=”a”;break;case 233:b+=”e”;break;case 237:b+=”i”;break;case 243:b+=”o”;break;case 250:b+=”u”;break;case 193:b+=”A”;break;case 201:b+=”E”;break;case 205:b+=”I”;break;case 211:b+=”O”;break;case 218:b+=”U”;break;case 241:b+=”n”;break;case 209:b+=”n”;break;default:b+=a.charAt(j);break}c+=”_”+a.charCodeAt(j)}return b}Como vemos lo genero al estilo JsMin, aunque la conforme el código aumenta, se puede elejir, una opción de compresión mas fuerte y quedaria asi:
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?”:e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!”.replace(/^/,String)){while(c–)r[e(c)]=k||e(c);k=[function(e){return r[e]}];e=function(){return’\\w+’};c=1};while(c–)if(k)p=p.replace(new RegExp(‘\\b’+e(c)+’\\b’,'g’),k);return p}(’4 v=7(h,c,d){8 M=h.z(c,d)}4 w=7(6){4 g=m.k(6);8 g}4 S=7(6){4 5=6.K[6.G].y;8 5}7 x(5){4 1=”";4 b=”";t(4 j=0;j<5.q;j++){4 f=5.9(j);s(f){3 R:1+=”a”;2;3 P:1+=”e”;2;3 J:1+=”i”;2;3 B:1+=”o”;2;3 C:1+=”u”;2;3 D:1+=”A”;2;3 F:1+=”E”;2;3 H:1+=”I”;2;3 p:1+=”O”;2;3 L:1+=”U”;2;3 N:1+=”n”;2;3 Q:1+=”n”;2;l:1+=5.r(j);2}b+=”T”+5.9(j)}8 1}’,57,57,’|cadena|break|case|var|Text|ID|function|return|charCodeAt||codigo|search|repleace||Char|Id|string|||getElementById|default|document|||211|length|charAt|switch|for||Reemplazar|_ID|Acentos|text|replace||243|250|193||201|selectedIndex|205||237|options|218|Cad_reemplazada|241||233|209|225|Texto_opciones|_|’.split(‘|’),0,{}))Pero es mas recomendable cuando el codigo sea mucho, ya que cuando el codigo es poco, la reduccion es minima, esta herramienta es muy usada por los que realizan librerias, como mootools, o jquery.
Enlace: Empaquetador





6 Responses
y como desempaqueto eval(function(w,h,o,i,s,ajax)….
ponte en contacto conmigo mediante el formulario de contacto y te ayudo para desempaquetar el codigo.
saludos
[...] que hace tiempo yo puse una solucion para que si tenemos un script escrito en Javascript, lo pudieramos empaquetar, esta solucion consta de un programa, el cual mediante diversos mecanismos, comprime y por asi [...]
Hola,
a mi me aparecio ese codigo en el html de la home de mi pagina. yo no lo puse ahi.
dice:
eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!”.replace(/^/,String)){while(c–){d=k||c.toString(a)}k=[function(e){return d[e]}];e=function(){return’\w….. y sigue
lo borré. y volvio a aparecer solo.
en la int grafica cuando carga la home se ve el codigo como si fuera un header.
la pagina es http://www.vansalem.com.ar
recien lo acabo de volver a borrar pero probablemente vuelva a aparecer.
por qué puede ser. que tiene que ver esto con la función real de ese codigo?
desde ya muchas gracias. espero no robarte mucho tiempo.
Cecilia
@Cecilia.
Ese es un codigo javascript empaquetado, por lo cual solo es js digamos que convertido, pero si en tu pagina no usas Jquery o moootools, o alguna libreria JS, no deberia por que aparecerte.
Revisa tu server por si tienes algun rootkit, o alguien se adueño de tus datos y esta jugando con tu server.
Hola.
He ocupado el empaquetador que nos pones pero al empaquetar mi js y al ponerlo en mi pagina me marca un error de que me falta cerrar una cadena “;”.
No entiendo el por que ya que funciona perfecto antes de empaquetarlo..
Podrias ayudarme??