Javascript

Qual é o código que poderia ser mais performático para limpar os campo de um combobox , o código que está sublinhando, ou os que estão fazendo loop:

function limpar(){ var tamanho = document.getElementById('estado').length; for(var i=0;i<tamanho;i++){ document.all.estado.options.remove(0); } var tamanhoC = document.getElementById('cidade').length; for(var i=0;i<tamanhoC;i++){ document.all.cidade.options.remove(0); } // document.getElementById('estado').length = 0; // document.getElementById('cidade').length = 0; }
Pergunto pois os sublinhados produzem o mesmo efeito na hora de limpar.

[quote=fabioEM]Qual é o código que poderia ser mais performático para limpar os campo de um combobox , o código que está sublinhando, ou os que estão fazendo loop:

function limpar(){ var tamanho = document.getElementById('estado').length; for(var i=0;i<tamanho;i++){ document.all.estado.options.remove(0); } var tamanhoC = document.getElementById('cidade').length; for(var i=0;i<tamanhoC;i++){ document.all.cidade.options.remove(0); } // document.getElementById('estado').length = 0; // document.getElementById('cidade').length = 0; }
Pergunto pois os sublinhados produzem o mesmo efeito na hora de limpar.[/quote]

Para limpar acredito que seja o codigo comentado, no comentado seu comboBox perdeu a referencia de todos os itens de uma só vez, já no loop, ele percorre elemento por elemento e vai desalocando eles um a um, é claro que se seu comboBox tiver apenas uns 15 ou 20 elementos vc nem vai perceber a diferença, mas coloca ai uns 4 mil elementos dentro do seu comboBox, ai vc vai sentir, o .remove(x) é util quando vc quer remover não todos elementos mas apenas um ou alguns deles.

Talvez eu esteja errado, se estiver, digam ai como a coisa funciona, conhecimento nunca é demais.

[quote=Vinny][quote=fabioEM]Qual é o código que poderia ser mais performático para limpar os campo de um combobox , o código que está sublinhando, ou os que estão fazendo loop:

function limpar(){ var tamanho = document.getElementById('estado').length; for(var i=0;i<tamanho;i++){ document.all.estado.options.remove(0); } var tamanhoC = document.getElementById('cidade').length; for(var i=0;i<tamanhoC;i++){ document.all.cidade.options.remove(0); } // document.getElementById('estado').length = 0; // document.getElementById('cidade').length = 0; }

Pergunto pois os sublinhados produzem o mesmo efeito na hora de limpar.[/quote]

Para limpar acredito que seja o codigo comentado, no comentado seu comboBox perdeu a referencia de todos os itens de uma só vez, já no loop, ele percorre elemento por elemento e vai desalocando eles um a um, é claro que se seu comboBox tiver apenas uns 15 ou 20 elementos vc nem vai perceber a diferença, mas coloca ai uns 4 mil elementos dentro do seu comboBox, ai vc vai sentir, o .remove(x) é util quando vc quer remover não todos elementos mas apenas um ou alguns deles.

Talvez eu esteja errado, se estiver, digam ai como a coisa funciona, conhecimento nunca é demais.[/quote]
tambem acho que é esse