Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida sobre "tempo" com "o" e também sobre localhost versus drive C

Oi! Estou com duas dúvidas: 1)Tenho todo o projeto "Alura-typer" no meu drive C, onde vou atualizando os códigos com o passar das aulas. Mas eu gostaria de entender o motivo pelo qual a minha página "principal.html" que está no drive C com os outros arquivos de códigos tem comportamento diferente de quando eu abro a mesma no página através do localhost:3000/principal.html. Por exemplo: até ontem, a página do drive C estava funcionando corretamente, buscando as frases aleatórias no servidor e também trazia a frase escolhida através do seletor. Hoje, ao implementar os códigos de sincronização do placar, a página do drive C está com erro, mas a página do localhost funciona corretamente.

2) No código abaixo, eu não entendi o motivo pelo qual usamos o ".texto" com "o" (ao invés de ".text") e nem o ".tempo". Esses termos constam nas funções "trocaFraseAleatoria()" e "trocaFrase()".

$("#botao-frase").click(fraseAleatoria); $("#botao-frase-id").click(buscaFrase);

function fraseAleatoria(){ $("#spinner").toggle(); $.get("http://localhost:3000/frases", trocaFraseAleatoria) .fail(function(){ $("#erro").toggle(); setTimeout(function(){ $("#erro").toggle(); },1500); }).always(function(){ $("#spinner").toggle(); }); }

function trocaFraseAleatoria(data){ var frase = $(".frase"); var numeroAleatorio = Math.floor(Math.random()*data.length);

frase.text(data[numeroAleatorio].texto);
atualizaTamanhoFrase();
atualizaTempoInicial(data[numeroAleatorio].tempo);

}

function buscaFrase(){ $("#spinner").toggle(); var fraseId = $("#frase-id").val();

var dados = {id: fraseId};

$.get("http://localhost:3000/frases", dados, trocaFrase)
.fail(function(){
    $("#erro").toggle();
    setTimeout(function(){
        $("#erro").toggle();            
    },2000);
})
.always(function(){
    $("#spinner").toggle();
});

}

function trocaFrase(data){ var frase = $(".frase"); frase.text(data.texto); atualizaTamanhoFrase(); atualizaTempoInicial(data.tempo); }

1 resposta
solução!

Fala ai Maisa, tudo bem? Vamos lá:

1) A diferença é que quando você utiliza o arquivo direto pelo drive C o navegador vai importá-lo direto do disco e será responsável por baixar e parsear os conteudos também diretos do disco e quando você usa pelo localhost existe um servidor servindo esses arquivos estáticos, ou seja o navegador vai baixar os arquivos servidos e fornecidos pelo servidor.

Isso porque algumas funcionalidades apenas funcionam quando temos esse servidor e não de forma direta via disco.

2) O .tempo e texto são utilizados para ler os dados da API, ou seja, a API retorna objetos que possuem sua propriedades em português, exemplo:

const resposta = { tempo: 'ALGO', texto: 'ALGO' }

Então a gente utiliza a dot notation para ver as propriedades tempo e texto do objeto resposta.

Espero ter ajudado.