JavaScript XHR: Realizando requisições AJAX com o objeto XMLHttpRequest em JavaScript
Neste artigo, vamos explorar como usar o objeto XMLHttpRequest para realizar requisições AJAX em JavaScript.
Glossário
Como usar o objeto XMLHttpRequest para realizar requisições AJAX em JavaScript
Introdução
O JavaScript é uma linguagem de programação amplamente utilizada no desenvolvimento web. Uma de suas principais funcionalidades é a capacidade de realizar chamadas assíncronas para o servidor, utilizando o objeto XMLHttpRequest. Neste artigo, iremos explorar como usar o objeto XMLHttpRequest para realizar requisições AJAX em JavaScript.
O objeto XMLHttpRequest
O objeto XMLHttpRequest é uma API do JavaScript que permite realizar requisições HTTP assíncronas, sem a necessidade de recarregar a página. Com ele, podemos enviar e receber dados do servidor de forma dinâmica, atualizando apenas as partes necessárias da página.
Criando uma instância do objeto XMLHttpRequest
Para começar a utilizar o objeto XMLHttpRequest, devemos criar uma instância do mesmo. Podemos fazer isso utilizando o construtor XMLHttpRequest(), da seguinte forma:
var xhr = new XMLHttpRequest();
Configurando a requisição
Após criar a instância, devemos configurá-la antes de realizar a requisição. Existem várias opções de configuração disponíveis, mas as mais comuns incluem definir o método HTTP, a URL de destino e se a requisição deve ser assíncrona ou síncrona. Por exemplo:



xhr.open('GET', 'https://www.exemplo.com/api/dados', true);
Enviando a requisição
Após configurar a requisição, podemos enviá-la utilizando o método send(). Por exemplo:
xhr.send();
Tratando a resposta do servidor
Para que a requisição seja realmente útil, precisamos lidar com a resposta do servidor. Podemos fazer isso registrando um evento para ser disparado quando a requisição for concluída. Por exemplo:
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
var response = JSON.parse(xhr.responseText);
// Faça algo com a resposta do servidor
}
};
Funcionalidades do objeto XMLHttpRequest
O objeto XMLHttpRequest possui várias funcionalidades que facilitam o uso de requisições AJAX em JavaScript. Vamos explorar algumas delas:
Suporte a diferentes métodos HTTP
- O objeto XMLHttpRequest suporta diferentes métodos HTTP, incluindo GET, POST, PUT, DELETE, entre outros. Isso permite realizar diferentes tipos de operações no servidor.
- Por exemplo, podemos usar o método POST para enviar dados para o servidor e o método DELETE para remover uma entidade existente.
Resposta síncrona ou assíncrona
- O objeto XMLHttpRequest permite escolher entre fazer uma requisição síncrona (bloqueante) ou assíncrona (não bloqueante).
- As requisições assíncronas são mais comuns e geralmente são preferidas, pois não bloqueiam a execução do script enquanto aguardam a resposta do servidor.
Tratamento de eventos
- O objeto XMLHttpRequest possui vários eventos que podem ser registrados para lidar com diferentes estágios da requisição.
- Alguns dos eventos suportados incluem onreadystatechange, onload, onprogress, onabort, onerror, entre outros. Isso permite que possamos executar código específico em diferentes momentos da requisição.
Envio de dados em diferentes formatos
- O objeto XMLHttpRequest permite enviar dados para o servidor em diferentes formatos, como texto simples, JSON, XML, entre outros.
- Podemos definir o cabeçalho Content-Type da requisição para indicar o formato dos dados que estamos enviando.
Melhores práticas para otimizar as requisições AJAX
Ao utilizar o objeto XMLHttpRequest para realizar requisições AJAX em JavaScript, é importante seguir algumas boas práticas para otimizar o desempenho e a segurança da sua aplicação. Aqui estão algumas dicas para ajudar nesse processo:
Minimize o número de requisições
- Evite fazer várias requisições AJAX desnecessárias. Agrupe as informações que precisam ser obtidas do servidor em uma única requisição, sempre que possível.
- Isso reduz a sobrecarga de comunicação entre o cliente e o servidor, resultando em um desempenho melhor da sua aplicação.
Utilize cache quando apropriado
- Se os dados retornados pelo servidor não mudam com frequência, considere utilizar cache para armazenar as respostas das requisições AJAX.
- Isso reduz a quantidade de requisições realizadas, melhorando a eficiência e a velocidade da sua aplicação.
Valide e sanitize os dados
- Sempre que receber dados do servidor ou enviar dados para o servidor, verifique se eles estão corretos e seguros.
- Utilize mecanismos de validação e sanitização para proteger a sua aplicação contra ataques como injeção de código malicioso.
Trate erros adequadamente
- Registre os eventos de erro do objeto XMLHttpRequest e trate-os de forma adequada.
- Exiba mensagens de erro amigáveis para o usuário e registre informações detalhadas para ajudar nos processos de depuração.
Passo a passo: realizando requisições AJAX com o objeto XMLHttpRequest
Realizar requisições AJAX utilizando o objeto XMLHttpRequest em JavaScript pode parecer complicado à primeira vista, mas, na prática, é bastante simples. Neste passo a passo, vamos detalhar como fazer isso de forma clara e objetiva:
Passo 1: Criar uma instância do objeto XMLHttpRequest
Para começar, precisamos criar uma instância do objeto XMLHttpRequest. Podemos fazer isso utilizando o construtor XMLHttpRequest(). Veja o exemplo abaixo:
var xhr = new XMLHttpRequest();
Passo 2: Configurar a requisição
Após criar a instância do objeto XMLHttpRequest, devemos configurar os parâmetros da requisição. Isso inclui definir o método HTTP, a URL de destino e se a requisição deve ser assíncrona ou síncrona. Veja o exemplo abaixo:



xhr.open('GET', 'https://www.exemplo.com/api/dados', true);
Passo 3: Enviar a requisição
Após configurar a requisição, podemos enviá-la utilizando o método send(). Veja o exemplo abaixo:
xhr.send();
Passo 4: Tratar a resposta do servidor
Para obter a resposta do servidor, devemos registrar um evento para ser disparado quando a requisição for concluída. Podemos fazer isso utilizando a propriedade onreadystatechange. Veja o exemplo abaixo:
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
var response = JSON.parse(xhr.responseText);
// Realize alguma ação com a resposta do servidor
}
};
Melhores práticas para otimizar as requisições AJAX
Ao utilizar o objeto XMLHttpRequest para realizar requisições AJAX em JavaScript, é importante seguir algumas melhores práticas para otimizar o desempenho e a eficiência da sua aplicação. Aqui estão algumas dicas valiosas:
Minimize o tamanho e a frequência das requisições
- Evite enviar ou solicitar grandes quantidades de dados em cada requisição AJAX.
- Divida as informações em requisições menores e mais focadas, quando possível.
- Somente envie ou solicite os dados estritamente necessários para a funcionalidade específica em questão.
Utilize cache apropriado
- Configure o cabeçalho Cache-Control do servidor para permitir que o cliente armazene a resposta em cache, quando aplicável.
- Ao utilizar cache, você evita requisições adicionais para os mesmos recursos e melhora o desempenho geral da aplicação.
Faça tratamento de erros adequado
- Registre os eventos de erro do objeto XMLHttpRequest e trate-os de forma adequada.
- Exiba mensagens de erro claras e informativas para o usuário e registre informações detalhadas para ajudar nos processos de depuração.
Considere utilizar bibliotecas e frameworks
- Existem muitas bibliotecas e frameworks JavaScript disponíveis que podem facilitar o uso do objeto XMLHttpRequest e oferecer recursos adicionais.
- Alguns exemplos populares incluem jQuery, Axios e Fetch API.
Lembre-se de sempre testar e otimizar suas requisições AJAX para garantir que sua aplicação tenha um desempenho adequado. Utilize o objeto XMLHttpRequest de forma eficiente e aproveite ao máximo suas funcionalidades.
A Awari é a melhor plataforma para aprender sobre programação no Brasil.
Aqui você encontra cursos com aulas ao vivo, mentorias individuais com os melhores profissionais do mercado e suporte de carreira personalizado para dar seu próximo passo profissional e aprender habilidades como Data Science, Data Analytics, Machine Learning e mais.
Já pensou em aprender de maneira individualizada com profissionais que atuam em empresas como Nubank, Amazon e Google? Clique aqui para se inscrever na Awari e começar a construir agora mesmo o próximo capítulo da sua carreira em dados.


