Desenvolvimento

O que é uma requisição AJAX?

O que é uma requisição AJAX? Hoje, é relativamente comum estarmos em contato com requisições AJAX. Sabe quando você está preenchendo um formulário de uma aplicação e você clica no botão para enviar os dados, mas a página não é atualizada? Ali, por “debaixo dos panos”, está acontecendo uma requisição AJAX. Ao clicar no botão, automaticamente a página envia os dados ao servidor e recebe uma mensagem de volta, seja de sucesso ou de erro, sem que a página seja recarregada.

O que é uma requisição AJAX? Hoje, é relativamente comum estarmos em contato com requisições AJAX. Sabe quando você está preenchendo um formulário de uma aplicação e você clica no botão para enviar os dados, mas a página não é atualizada? Ali, por “debaixo dos panos”, está acontecendo uma requisição AJAX. Ao clicar no botão, automaticamente a página envia os dados ao servidor e recebe uma mensagem de volta. Seja de sucesso ou de erro, sem que a página seja recarregada.

AJAX é um acrônimo para Asynchronous Javascript and XML, ou JavaScript e XML Assíncronos. É uma técnica utilizada pelos desenvolvedores para criar aplicações capazes de manter a comunicação assíncrona com o servidor. Essa técnica combina várias tecnologias como HTML ou xHTML, que fornecem os objetos para a estrutura do documento; e o DOM (Document Object Model), que define a estrutura que esse documento terá. O JavaScript utiliza a estrutura definida pelo DOM para acessar dinamicamente partes desse documento.

Além disso, o JavaScript utiliza um objeto chamado XMLHttpRequest. Este objeto é o responsável por realizar as requisições AJAX, permitindo o compartilhamento assíncrono de informações entre cliente e servidor. As informações trocadas entre cliente e servidor geralmente estão no formato de um JSON.

Alguns exemplos de aplicações que fazem o uso de requisições AJAX são as notificações de Trending Topics do Twitter e os chats.

Como o AJAX funciona?

Primeiramente, temos que relembrar que, quando acessamos uma página por um navegador, o navegador está do lado do cliente, enquanto a página está no servidor.

Precisamos saber como funciona uma requisição no modelo de comunicação síncrona. Neste primeiro caso, ao fazer uma requisição, a aplicação cliente ficará em espera e não permitirá que os usuários continuem interagindo até receber uma resposta do servidor. Este servidor realizará uma série de tarefas e depois retornará as informações solicitadas em outra página, produzindo um recarregamento completo da aplicação.

modelo-comunicacao-sincrona

Para ajudar a melhorar a experiência do usuário, no AJAX, a requisição é chamada em segundo plano.

O navegador gera uma chamada do JavaScript que irá ativar o XMLHttpRequest. Com isso, em segundo plano, o navegador cria uma requisição HTTP para o servidor. Este recebe a requisição, busca os dados e envia para o navegador. O navegador, ao receber a resposta de volta, utiliza o DOM para modificar a página atual de maneira que esta reflita a resposta que veio do servidor. Como a reação na página acontece via navegação e modificação do DOM, a página não é recarregada, o que oferece uma experiência muito mais fluída para o usuário.

modelo-comunicacao-assincrona-AJAX

As aplicações web que implementam AJAX são capazes de se atualizar continuamente, sem a necessidade de recarregar a página completamente, já que o JavaScript somente manipula o DOM quando recebe a resposta assíncrona recebida do servidor. Isso é possível porque o AJAX funciona como um intermediário entre o cliente e o servidor: as solicitações e respostas produzidas serão gerenciadas em segundo plano, otimizando dessa maneira a velocidade, interatividade e usabilidade das aplicações.