Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

XMLHttpRequest onload vs onreadystatechange

no curso o professor nos ensina a tratar a resposta recebida do XMLHttpRequest assim:

xhr.onreadystatechange = () => { if (xhr.readyState === 4) { if (xhr.status === 200) { console.log(xhr.responseText); } else { console.log("nao foi possivel obter as negociacoes"); } } };

mas eu ouvi falar do xhr.onload que parece fazer exatamente a mesma coisa sem precisar de todos esses ifs. e pra tratar o erro é sò usar o xhr.onerror. Eh verdade isso? Eh melhor usar onload e onerror se eu estou fazendo uma aplicacao apenas para navegadores modernos?

3 respostas
solução

Fala Stefane, tudo certo?

Os eventos onload e onerror não são amplamente suportados por browsers mais antigos.

Caso seu objetivo seja que sua aplicação seja funcional independente da versão do browser, sugiro que opte pelo onreadystatechange

Além disso, existe uma diferença entre os dois:

O evento onload é disparado se a requisição (fetch) foi um sucesso.

O evento onerror se a requisição falhou

e o onreadystatechange se o atributo readyState mudou de valor, exceto quando muda para UNSENT (quando o objeto é construido)

Além disso, a interface que eles implementam é diferente, enquanto o onerror e onload utilizam o ProgressEvent (indicam algum tipo de progressão)

O onreadystatechange implementa o Event que é a interface padrão dos eventos disparados no browser.

Espero que dê uma esclarecida.

Abraços!

Obrigado pela explicacao.

Fala Stefane,

Estou fechando seu tópico agora! Caso surja uma nova dúvida basta criar um novo!

Abraços!