segunda-feira, 15 de janeiro de 2007

Minimizador de códigos javascript

Estou percebendo que postar mensagens todos os dias num blog é algo trabalhoso! Esses dias estive com ilustres visitas aqui em casa e acabei ficando sem tempo de postar.

Hoje, em minhas "navegações perdidas" descobri o JSMIN. É um aplicativo interessante que pega o código javascript e retira um monte de caracteres desnecessários, reduzindo o tamanho do fonte a ser transferido ao cliente.

Vejam um código Javascript antes de ser "minificado":

// is.js

// (c) 2001 Douglas Crockford
// 2001 June 3


// is

// The -is- object is used to identify the browser. Every browser edition
// identifies itself, but there is no standard way of doing it, and some of
// the identification is deceptive. This is because the authors of web
// browsers are liars. For example, Microsoft's IE browsers claim to be
// Mozilla 4. Netscape 6 claims to be version 5.

var is = {
ie: navigator.appName == 'Microsoft Internet Explorer',
java: navigator.javaEnabled(),
ns: navigator.appName == 'Netscape',
ua: navigator.userAgent.toLowerCase(),
version: parseFloat(navigator.appVersion.substr(21)) ||
parseFloat(navigator.appVersion),
win: navigator.platform == 'Win32'
}
is.mac = is.ua.indexOf('mac') >= 0;
if (is.ua.indexOf('opera') >= 0) {
is.ie = is.ns = false;
is.opera = true;
}
if (is.ua.indexOf('gecko') >= 0) {
is.ie = is.ns = false;
is.gecko = true;
}

Tamanho total: 1004 bytes.

Agora vejam depois de passar pelo JSMIN:

var is={ie:navigator.appName=='Microsoft Internet Explorer',java:navigator.javaEnabled(),ns:navigator.appName=='Netscape',ua:navigator.userAgent.toLowerCase(),version:parseFloat(navigator.appVersion.substr(21))||parseFloat(navigator.appVersion),win:navigator.platform=='Win32'}
is.mac=is.ua.indexOf('mac')>=0;if(is.ua.indexOf('opera')>=0){is.ie=is.ns=false;is.opera=true;}
if(is.ua.indexOf('gecko')>=0){is.ie=is.ns=false;is.gecko=true;}
}

Tamanho total: 438 bytes

Uma economia de 566 bytes... é uma diferença considerável para um script de exemplo. Para as nossas bibliotecas javascript com certeza fara uma diferença muito maior!


Abraços e até o próximo post.

Um comentário:

Unknown disse...

Muito bom esta dica Thiago!!!
Parabéns pelo Blog!!