Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Processo lógico - otimização - Javascript avançado aula 3

Na aula de javascript avançado I, video 3, ele fala de performance. lá temos as duas funções :

1-

class NegociacaoController {


    adiciona(event) {
        event.preventDefault();

        let $ = document.querySelector.bind(document);
        let inputData = $('#data');
        let inputQuantidade = $('#quantidade');
        let inputValor = $('#valor');

        console.log(inputData.value);
        console.log(inputQuantidade.value);
        console.log(inputValor.value);


    }
}

2-

class NegociacaoController {

    constructor() {
        let $ = document.querySelector.bind(document);
        this.inputData = $('#data');
        this.inputQuantidade = $('#quantidade');
        this.inputValor = $('#valor');

    }

    adiciona(event) {
        event.preventDefault();


        console.log(this.inputData.value);
        console.log(this.inputQuantidade.value);
        console.log(this.inputValor.value);


    }
}

Eu entendi o motivo pelo qual ele faz isso.. mas eu não entendo o processo lógico do porquê no primeiro modo, se tiver 100 entradas o querrySelector vai percorrer o DOM 100 vezes, e no segundo modelo ele só vai percorrer uma vez o DOM. alguém pode me explicar isso? obrigado.

4 respostas
solução!

Fala ai Raul, tudo em ordem ? Ótimo questão que você abordou, vou tentar lhe explicar o que foi feito e porque:

No seu primeiro código, sempre que ao adicionar uma nova negociação você esta buscando no DOM os inputs(campos) referente a Data, Quantidade e Valor. Sendo assim se você criar 100 negociações, você irá procurar esses três inputs 100 vezes, certo ?

No segundo código, ele transformou os inputs referente a Data, Quantidade e Valor em atributos da classe NegociacaoController assim se você adicionar 100 negociações ele não irá buscar os três inputs e sim utilizar os inputs que já foram buscados e encontrados e adicionados como atributos na classe, assim que sua página carregou.

Espero ter ajudado.

Um pouco confuso .. entendi mais ou menos, mas já tenho uma compreensão melhor que antes.. rs Valeu ai pela resposta... tem algumas coisas que me deixam um pouco perdido... gosto de saber como funcionam as coisas em vez de só "como fazer"..

Você esta certissimo Raul, esse detalhes que irá fazer de você um ótimo desenvolvedor.

Você esta certissimo Raul, esse detalhes que irá fazer de você um ótimo desenvolvedor.