Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Como não duplicar os dados recebidos?

Reparei que ao clicar novamente no botão, que acredito que deveria ser um refresh para caso alterem o arquivo ele só atualizar, nosso botão acaba duplicando os resultados.

Como conseguimos fazer a verificação se o arquivo já existe e se existe apenas atualizar?

var botao = document.querySelector("#buscar-pacientes");
botao.addEventListener("click", function(){

    var xhr = new XMLHttpRequest();

    xhr.open("GET", "https://api-pacientes.herokuapp.com/pacientes");

    var erroAjax = document.querySelector("#erro-ajax");

    xhr.addEventListener("load", function(){
        if (xhr.status == 200) {
            erroAjax.classList.add("invisivel");
            var resposta = xhr.responseText;

            var pacientes = JSON.parse(resposta);

            pacientes.forEach(function(paciente){
                adicionaPacienteNaTabela(paciente);
            });
        } else {
            console.log(xhr.status);
            console.log(xhr.responseText);
            erroAjax.classList.remove("invisivel");
        }

    });    

    xhr.send();
});
4 respostas

Oi Rafael, pode colocar o trecho de código aqui? assim mais pessoas conseguem tentar te ajudar.

Rafael, se conseguir postar o código ou um exemplo, ficaria mais fácil lhe ajudar.

Desculpe, acabei não inserindo o código. Agora está certo.

solução!

Nesse caso Rafael, teria algumas formas de se resolver o problema:

Primeiro: Ao clicar no botão você pode apagar todos os pacientes e importar novamente, assim evitara repetição de pacientes na tabela.

Segundo: Antes de inserir o paciente na tabela, você poderia verificar se o mesmo já esta inserido ou não, ou seja, inserir apenas caso o mesmo não esteja na tabela.

No meu ponto de vista, ficaria com a primeira opção.

Outro detalhe: Quando for inserir códigos, utilize o botão Inserir Código para que o mesmo fique formatado com uma melhor legibilidade.

Espero ter ajudado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software