Pular para o conteúdo principal

Questão de Programação — Linguagens de marcação — VUNESP 2023

ProgramaçãoLinguagens de marcação
Código
vu078976
Banca
VUNESP
Órgão
TCM-SP
Ano
2023
Nível
Fundamental
Cargo
Auxiliar Técnico de Controle Externo - Técnico de Informática
Em uma requisição AJAX, o evento onreadystatechange, de um objeto XMLHttpRequest, é acionado no máximo
  1. A1 vez.
  2. B2 vezes.
  3. C3 vezes.
  4. D4 vezes.
  5. E5 vezes.
Revelar gabarito e comentário

GabaritoD — 4 vezes.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

AJAX e XMLHttpRequest: o evento onreadystatechange

Gabarito: letra D. O evento onreadystatechange é acionado cada vez que a propriedade readyState do objeto XMLHttpRequest sofre alteração. O readyState possui 5 valores possíveis (0 a 4), gerando no máximo 4 transições e, consequentemente, 4 disparos do evento. A banca testa o conhecimento sobre estados da requisição AJAX.

Estados do XMLHttpRequest

readyState

Valor

Descrição

UNSENT

0

Objeto criado, mas open() ainda não foi chamado

OPENED

1

open() foi chamado

HEADERS_RECEIVED

2

send() foi chamado, cabeçalhos e status disponíveis

LOADING

3

Dados parciais estão sendo recebidos

DONE

4

Operação concluída

O evento onreadystatechange é disparado a cada mudança de estado. Partindo do estado 0 (inicial), ao chamar open() vai para 1 (1º disparo); ao chamar send() passa por 2 (2º disparo); depois para 3 (3º disparo); e finalmente para 4 (4º disparo). Portanto, o máximo de acionamentos é 4 vezes.

  1. 1UNSENT (0)
  2. 2OPENED (1)
  3. 3HEADERS_RECEIVED (2)
  4. 4LOADING (3)
  5. 5DONE (4)
LEVEL · soulevel.com.br

Análise das alternativas

Alternativa A — ❌ Incorreta

Afirma que o evento é acionado no máximo 1 vez. Na verdade, o readyState muda várias vezes ao longo de uma requisição, gerando múltiplos disparos.

Alternativa B — ❌ Incorreta

Afirma 2 vezes, o que corresponderia a apenas duas transições, enquanto existem quatro.

Alternativa C — ❌ Incorreta

Afirma 3 vezes, ignorando a transição final para o estado 4 (DONE).

Alternativa D — ✅ Correta ⟵ GABARITO

Afirma 4 vezes, que é o número correto de mudanças de estado (0→1, 1→2, 2→3, 3→4). Cada mudança aciona o evento uma vez.

Alternativa E — ❌ Incorreta

Afirma 5 vezes. Esse valor seria obtido se contássemos o estado inicial 0 como um disparo, mas o evento só é acionado quando há mudança de estado, não no momento da criação.

PEGA ESSA DICA!

Associe o número de disparos à quantidade de transições entre os 5 estados. Lembre-se que o estado inicial (UNSENT) não gera evento. Assim, de 0 a 4 são 4 transições, portanto 4 acionamentos. Esse raciocínio evita confundir com o número total de estados (5).

Gabarito: letra D (4 vezes).

Link permanente: /questoes/vu078976