Questão nº 45
Questão de Tecnologia da Informação · FGV TJ-MS 2024 (nº 45)
Para implementar o upload de um arquivo a partir de uma página web, Carlos utilizou a Application Programming Interface XMLHttpRequest. Para monitorar o progresso parcial durante o envio do arquivo, ele precisou acessar um atributo específico do objeto XMLHttpRequest e registrar um listener para determinado evento.
O atributo e o evento do XMLHttpRequest manipulados por Carlos são, respectivamente:
- Arequest e load;
- Bupload e progress; (alternativa correta)
- Cupload e loadstart;
- Drequest e progress;
- Erequest e loadstart.
Resposta comentada
Gabarito Alternativa B
Para monitorar o progresso de um envio de arquivo via XMLHttpRequest (uma API que permite fazer requisições HTTP assíncronas no navegador), você precisa acessar um objeto específico dentro do XMLHttpRequest que lida com os eventos de upload e registrar um ouvinte para o evento que indica o progresso.
- (A) Incorreta:
requestnão é um atributo específico para monitorar o upload, e o eventoloadé disparado quando a requisição completa (incluindo o recebimento da resposta), não para monitorar o progresso parcial do envio. - (B) Correta: O atributo
uploaddo objetoXMLHttpRequest(ou seja,xhr.upload) é um objetoXMLHttpRequestUploadque expõe eventos relacionados ao processo de envio. O eventoprogressé disparado periodicamente nesse objeto para fornecer atualizações sobre o progresso do envio do arquivo, permitindo monitorar a porcentagem já enviada. - (C) Incorreta: Embora
uploadseja o atributo correto, o eventoloadstarté disparado apenas quando o envio começa, não fornecendo informações sobre o progresso parcial contínuo. - (D) Incorreta: A armadilha aqui é que, embora o evento
progressexista no objetoXMLHttpRequestprincipal, ele geralmente se refere ao progresso do download da resposta. Para monitorar especificamente o progresso do envio (upload) do arquivo, é fundamental acessar o atributouploade registrar o ouvinte deprogressnele (xhr.upload.addEventListener('progress', ...)). - (E) Incorreta:
requestnão é o atributo correto para essa finalidade, eloadstartnão serve para monitorar o progresso parcial.
Fonte: FGV TJ-MS 2024 Técnico de Nível Superior - Web Designer (Caderno Tipo 1). Reproduzida para fins de estudo.