Prévia do material em texto
Correção do exercício da unidade
Desenvolvimento em Javascript
Questão 1
Correta
Questão com problema?
Em uma determinada aplicação web é possível encontrar um elemento div, uma imagem
e uma animação em CSS. Quando essa aplicação é carregada são observados os seguintes
eventos: uma janela de pop-up é apresentada ao usuário logo que o div é carregado, uma
janela de alerta é exibida quando houver a falha no carregamento da imagem e há um
contador que é aumentado a cada vez que animação se repete.
Considerando este comportamento, assinale a opção que descreve os três manipuladores
de eventos que corretamente permitem a realização dessas interações na aplicação.
Sua resposta
Correta
load, error e animationiteration
Comentário
Trata-se da alternativa correta diante do cenário apresentado, pois o evento load é
disparado após a carga completada página/elemento, o evento error é disparado quando
uma imagem não puder ser carregada e o evento animationiteration é disparado à cada
ciclo de repetição em uma animação.
Questão 2
Correta
Questão com problema?
Quando faz-se necessário criar interações de sistema usando eventos de teclado em uma
aplicação web é muito importante compreender o funcionamento de cada um e bem como,
associar as funções necessárias de forma compatível com os handlers de evento
escolhidos. Este cuida é fundamental para a correta criação das interações e também para
que estas interações sejam acionadas em um timing correto diante das ações realizadas
pelo usuário.
Assim, analise as afirmações abaixo e assinale qual delas diverge das características
estudadas sobre eventos de teclado:
Sua resposta
Correta
O evento keyPress é idêntico ao evento keyDown.
Comentário
Esta alternativa é divergente com o o que foi estudado sobre os eventos de teclado, pois
os eventos keyDown e keyPress apesar de serem bem similares, não são iguais já que o
evento keyPress somente funciona em parte das teclas enquanto o keyDown funciona
em todas. Logo, esta é a alternativa correta para esta questão.
Questão 3
Incorreta
Questão com problema?
A API Mutation Observers observa as mudanças ocorridas na estrutura do documento
HTML. Para utilização dessa funcionalidade, aplica-se o construtor
‘MutationObserver()’. Nesse construtor coloca-se uma função implementada por
parâmetro.
1. var x = new MutationObserver(function(mutations) {
2. mutations.forEach(function(mutation) {
3. alert("Mutação ocorrida");
4. });
5. });
6.
7. x.observe(document.documentElement, {
8. attributes: true,
9. characterData: true,
10. childList: true,
11. subtree: true,
12. attributeOldValue: true,
13. characterDataOldValue: true
14. });
Considerando as informações e o código javascript apresentadas, analise as afirmativas a
seguir:
I. Quando uma ação do usuário resultar na inserção de um campo no formulário, a janela
de alerta da linha 3 será disparada.
II. Quando uma ação do usuário resultar no foco do teclado em um link, a janela de alerta
da linha 3 será disparada..
III. Quando o evento de um clique resultar na mudança do valor de um elemento , a janela
de alerta da linha 3 será disparada.
Considerando o contexto apresentado, é correto o que se afirma em:
Sua resposta
Incorreta
I, apenas.
Solução esperada
I e III, apenas.
Comentário
I. Correto. Quando ocorre inserção de mais um campo no formulário, houve mudança
na estrutura html, ou seja, mais um elemento foi inserido, logo a API mutation observer
percebe e executa a linha 3 do código.. II. Incorreto. O foco no link não modifica a
estrutura HTML, apenas foca e mantem em destaque o link, não havendo mudança na
estrutura HTML. Logo não é disparado nenhuma mensagem. III. Correto. Embora seja
apenas mudança no valor, mesmo assim a mensagem de alerta é disparada pois ocorre
mudança na estrutura HTML. Pois ocorreu mudança do valar elemento, mesmo que ele
não tenha desaparecido.
Questão 4
Correta
Questão com problema?
Um aspecto importante do JavaScript é permitir a verificação e a validação local dos
dados de um formulário. Dessa forma, não é necessário realizar re-quisições ao servidor
web, o que aumenta significativamente a capacidade de interação com o usuário e
melhora o desempenho da página.
Com base no conhecimento em eventos, analise os trechos dos códigos HTML e
javascript a seguir:
Trecho do código html
Serviços
Trecho do código javascript
var servico = document.querySelector("#servico");
var btnForm = document.querySelector(".enviar");
var validacao = document.querySelector("#validacao");
function exibirInfo(){
alert("É importante relatar sua mensagem de forma clara.");
}
function validarCampos() {
validacao.textContent(“Cadastro enviado”);
}
Assinale a alternativa correta em relação ao evento que pode ocorrer no caso dos dois
códigos, levando em consideração que já encontram-se associados no mesmo projeto.
Sua resposta
Correta
Quando o elemento de entrada do tipo submit(botão de enviar formulário) for clicado,
automaticamente dispara um evento com texto acima do campo textaarea independente
se o campo textarea estiver vazio.
Comentário
Correto. O evento será disparado independente do estado do campo textArea, pois não
existe nenhum tratamento com estrutura condicional para este caso.
Questão 5
Correta
Questão com problema?
Criar jogos e simuladores em páginas Web é algo realmente interessante e didático para
quem deseja aprender mais sobre o uso de eventos no JavaScript, pois os mesmos podem
ser usados permitem a utilização de diversos tipos de eventos quando se está trabalhando
nas funcionalidades e interações da aplicação.
Diante do exposto e supondo que você está trabalhando em um projeto de um jogo, para
criar o controle de navegação usando as teclas direcionais, informe qual das opções não
faz parte do processo de criação:
Sua resposta
Correta
Alterar o keyCode das teclas ao serem pressionadas.
Comentário
Esta é a alternativa que não faz parte do que está elencado no enunciado, pois não há a
necessidade/possibilidade de tentar alterar os keyCodes de tecla. É a resposta correta
para esta questão.