Busca

Weapon W - Desenvolvimento web, tecnologia, seo e web standards


Weapon W » Artigos » Otimização de JavaScript

Otimização de JavaScript

Após vermos a aplicação do conceito de JavaScript Orientação a Objetos, um outro ponto muito importante no desenvolvimento JavaScript é a otimização do código.

Grandes aplicações precisam ter alguns cuidados com a otimização, pois infelizmente alguns navegadores não conseguem manipular e organizar corretamente a execução dos códigos JavaScript. Temos como principal exemplo o Internet Explorer, que aumenta o consumo de memória a cada segundo de uso, sem nunca liberar memória (mesmo após a página ter sido fechada).

Declaração de variáveis e métodos

Declarar somente uma vez por escopo. Perceba no exemplo abaixo, que usamos somente uma declaração no escopo principal da classe (declaramos 3 propriedades e 1 método):

var Carro = function() {
    var marca,
    modelo,
    cor,

    setCorBasica = function() {
         cor = "branco";
    };

    return {
         getCor : function() {
              return cor;
         },

         setCor : function(corTemp) {
              cor = corTemp,
              corTemp = null;
         }
    };
};

Limpeza de objetos

No exemplo acima, no método setCor(), limpamos a variável corTemp, pois era uma variável somente utilizada no momento de processamento do método.

Singleton

Instanciar classes sob demandas, e principalmente ter somente uma instância por classe, sem que o desenvolvedor saiba explicitamente o nome do objeto que contém a instância.

Perceba no exemplo abaixo, que estamos criando uma instância da classe Carro(), somente após a necessidade de se utilizar um método do mesmo, e sem saber o nome explícito da instância:

Carro.instance = null,
Carro.getInstance = function() {
    if (!Carro.instance)
         Carro.instance = new Carro();

    return Carro.instance;
};

Carro.getInstance().setCor("preto");
alert(Carro.getInstance().getCor());

Referência: Henrique Oliveira

Laço (loop)

Existem três maneiras de se fazer um laço no JavaScript:

  • for
  • do... while
  • while

A maneira mais performática para se programar um laço é utilizando o while. Considerando que o objeto a ler é um array, para ser mais performático se deve ler da última posição para a primeira:

i = carros.length;

while (i > 0) {
    i--,
    alert(carros[i]);
}

São poucos detalhes, que em uma grande aplicação fazem muita diferença.

Fernando Tessmann