Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ronaldomarcos

Passando por duas condições em IF

Recommended Posts

Alguém consegue dizer porque está executando as duas condições? ou não estou vendo algo... executa o if como o else toda vez...

xmlhttp.onreadystatechange = function() {   
         if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
              escrevemensagem("Parabéns, artigo publicado!");
              window.onbeforeunload = null;
              tempo = setInterval(vaiArtigos, 3000);
         }else{

              escrevemensagem("Algum problema ocorreu, tente novamente.");
              document.getElementById("savepub").style.display = 'inline-block';
              document.getElementById("saverasc").style.display = 'inline-block';                                        
         }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pq essa função é chamada 4 vezes.

Uma para cada estado do readyState.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tudo bem William, na verdade a intenção é que apenas quando o readState for 4 (finalizado) e página devolver 200 (totalmente carregada) vai executar. Validar as duas situações é que diz a w3schools.. ou está incorreto?

Eu contornei a situação que citei usando em vez de else um else if com diferente para qualquer das situações, mas foi para mim prosseguir, porque não vi motivo algum para ele executar as duas coisas usando apenas else.

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

a w3schools tem um monte de artigo ruim e incompleto. Não se guie por lá.

 

Executa o else várias vezes pq essa função é chamada 4 vezes, uma para cada estado do readyState.

Os 3 primeiros estados não precisam ser tratados. São estados intermediários de conexão, nada de interessante para mostrar pro usuário sobre eles.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.