Considere a requisição AJAX a seguir xhttp.open("GET", "teste.txt", true); xhttp.send(); O valor true, utilizado como o terceiro parâmetro do método, estabelece que
- A)a execução da requisição é síncrona.
Errada, porque true indica execução assíncrona, não síncrona.
- B)a execução da requisição é assíncrona.
Certa, pois o terceiro parâmetro true no open() define que a requisição será assíncrona.
- C)a execução da requisição inclui um call back.
Errada, porque callback pode ser usado no tratamento da resposta, mas não é o que o true estabelece.
- D)um evento erro na requisição deve ser tratado.
Errada, pois tratamento de erro depende da lógica do código, não do valor true do terceiro parâmetro.
- E)em caso de sucesso, o valor é retornado pela requisição.
Errada, porque a resposta não é retornada diretamente pelo send() em uma requisição assíncrona.
Gabarito: B
Em requisições AJAX, o terceiro parâmetro do método open() define se a chamada vai acontecer de forma síncrona ou assíncrona. Quando ele recebe true, o navegador não fica “travado” esperando a resposta: a requisição segue em paralelo e o código continua executando normalmente. Isso é o padrão moderno e o mais usado em aplicações web, porque melhora a experiência do usuário. No exemplo dado, xhttp.open("GET", "teste.txt", true); significa que a requisição GET para o arquivo teste.txt será assíncrona. Ou seja, o programa envia o pedido e depois trata a resposta quando ela chegar, geralmente com eventos, callback ou funções de tratamento, mas isso não é definido pelo valor true em si. Se o terceiro parâmetro fosse false, aí sim a execução seria síncrona, fazendo o navegador aguardar o retorno antes de continuar. Em provas, a banca costuma cobrar exatamente essa diferença: true = assíncrono, false = síncrono. Por isso, o gabarito é a letra B. O valor true estabelece que a execução da requisição é assíncrona, e não que há necessariamente callback, tratamento de erro ou retorno direto do valor.