jQuery - Ajax
AJAX é uma sigla que significa Asynchronous JavaScript and XML e esta tecnologia nos ajuda a carregar dados do servidor sem uma atualização da página do navegador.
Se você é novo no AJAX, recomendo que leia nosso Tutorial de Ajax antes de prosseguir.
JQuery é uma ótima ferramenta que fornece um rico conjunto de métodos AJAX para desenvolver aplicativos da web de próxima geração.
Carregando dados simples
É muito fácil carregar qualquer dado estático ou dinâmico usando JQuery AJAX. JQuery forneceload() método para fazer o trabalho -
Sintaxe
Aqui está a sintaxe simples para load() método -
[selector].load( URL, [data], [callback] );
Aqui está a descrição de todos os parâmetros -
URL- O URL do recurso do lado do servidor para o qual a solicitação é enviada. Pode ser um script CGI, ASP, JSP ou PHP que gera dados dinamicamente ou fora de um banco de dados.
data- Este parâmetro opcional representa um objeto cujas propriedades são serializadas em parâmetros codificados adequadamente para serem passados para a solicitação. Se especificado, a solicitação é feita usando oPOSTmétodo. Se omitido, oGET método é usado.
callback- Uma função de retorno de chamada chamada depois que os dados de resposta foram carregados nos elementos do conjunto correspondente. O primeiro parâmetro passado para esta função é o texto de resposta recebido do servidor e o segundo parâmetro é o código de status.
Exemplo
Considere o seguinte arquivo HTML com uma pequena codificação JQuery -
<html>
<head>
<title>The jQuery Example</title>
<script type = "text/javascript"
src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
</script>
<script type = "text/javascript" language = "javascript">
$(document).ready(function() {
$("#driver").click(function(event){
$('#stage').load('/jquery/result.html');
});
});
</script>
</head>
<body>
<p>Click on the button to load /jquery/result.html file −</p>
<div id = "stage" style = "background-color:cc0;">
STAGE
</div>
<input type = "button" id = "driver" value = "Load Data" />
</body>
</html>
Aqui load() inicia uma solicitação Ajax para a URL especificada /jquery/result.htmlArquivo. Depois de carregar este arquivo, todo o conteúdo seria populado dentro de <div> marcado com o estágio de ID . Supondo que nosso arquivo /jquery/result.html tenha apenas uma linha HTML -
<h1>THIS IS RESULT...</h1>
Quando você clica em um determinado botão, o arquivo result.html é carregado.
Obtendo dados JSON
Haveria uma situação em que o servidor retornaria a string JSON em relação à sua solicitação. Função de utilidade JQuerygetJSON() analisa a string JSON retornada e disponibiliza a string resultante para a função de retorno de chamada como o primeiro parâmetro para realizar outras ações.
Sintaxe
Aqui está a sintaxe simples para getJSON() método -
[selector].getJSON( URL, [data], [callback] );
Aqui está a descrição de todos os parâmetros -
URL - A URL do recurso do lado do servidor contatado por meio do método GET.
data - Um objeto cujas propriedades servem como pares nome / valor usados para construir uma string de consulta a ser anexada ao URL, ou uma string de consulta pré-formatada e codificada.
callback- Uma função chamada quando a solicitação é concluída. O valor dos dados resultante da digestão do corpo da resposta como uma string JSON é passado como o primeiro parâmetro para esse retorno de chamada e o status como o segundo.
Exemplo
Considere o seguinte arquivo HTML com uma pequena codificação JQuery -
<html>
<head>
<title>The jQuery Example</title>
<script type = "text/javascript"
src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
</script>
<script type = "text/javascript" language = "javascript">
$(document).ready(function() {
$("#driver").click(function(event){
$.getJSON('/jquery/result.json', function(jd) {
$('#stage').html('<p> Name: ' + jd.name + '</p>');
$('#stage').append('<p>Age : ' + jd.age+ '</p>');
$('#stage').append('<p> Sex: ' + jd.sex+ '</p>');
});
});
});
</script>
</head>
<body>
<p>Click on the button to load result.json file −</p>
<div id = "stage" style = "background-color:#eee;">
STAGE
</div>
<input type = "button" id = "driver" value = "Load Data" />
</body>
</html>
Aqui, o método utilitário JQuery getJSON() inicia uma solicitação Ajax para a URL especificada result.jsonArquivo. Depois de carregar este arquivo, todo o conteúdo seria passado para a função de retorno de chamada que finalmente seria populado dentro de <div> marcado com o estágio de ID . Supondo que nosso arquivo result.json tenha o seguinte conteúdo formatado json -
{
"name": "Zara Ali",
"age" : "67",
"sex": "female"
}
Quando você clica em um determinado botão, o arquivo result.json é carregado.
Passando dados para o servidor
Muitas vezes, você coleta informações do usuário e as transmite ao servidor para processamento posterior. JQuery AJAX tornou fácil passar os dados coletados para o servidor usandodata parâmetro de qualquer método Ajax disponível.
Exemplo
Este exemplo demonstra como pode passar a entrada do usuário para um script de servidor web que enviaria o mesmo resultado de volta e nós o imprimiríamos -
<html>
<head>
<title>The jQuery Example</title>
<script type = "text/javascript"
src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
</script>
<script type = "text/javascript" language = "javascript">
$(document).ready(function() {
$("#driver").click(function(event){
var name = $("#name").val();
$("#stage").load('/jquery/result.php', {"name":name} );
});
});
</script>
</head>
<body>
<p>Enter your name and click on the button:</p>
<input type = "input" id = "name" size = "40" /><br />
<div id = "stage" style = "background-color:cc0;">
STAGE
</div>
<input type = "button" id = "driver" value = "Show Result" />
</body>
</html>
Aqui está o código escrito em result.php script -
<?php
if( $_REQUEST["name"] ){
$name = $_REQUEST['name'];
echo "Welcome ". $name;
}
?>
Agora você pode inserir qualquer texto na caixa de entrada fornecida e clicar no botão "Mostrar resultado" para ver o que você inseriu na caixa de entrada.
Métodos JQuery AJAX
Você viu o conceito básico de AJAX usando JQuery. A tabela a seguir lista todos os métodos JQuery AJAX importantes que você pode usar com base em sua necessidade de programação -
Sr. Não. | Métodos e Descrição |
---|---|
1 | jQuery.ajax (opções) Carregue uma página remota usando uma solicitação HTTP. |
2 | jQuery.ajaxSetup (opções) Defina as configurações globais para solicitações AJAX. |
3 | jQuery.get (url, [dados], [retorno de chamada], [tipo]) Carregue uma página remota usando uma solicitação HTTP GET. |
4 | jQuery.getJSON (url, [dados], [retorno de chamada]) Carregue dados JSON usando uma solicitação HTTP GET. |
5 | jQuery.getScript (url, [callback]) Carrega e executa um arquivo JavaScript usando uma solicitação HTTP GET. |
6 | jQuery.post (url, [dados], [retorno de chamada], [tipo]) Carregue uma página remota usando uma solicitação HTTP POST. |
7 | carregar (url, [dados], [retorno de chamada]) Carregue o HTML de um arquivo remoto e injete-o no DOM. |
8 | serialize () Serializa um conjunto de elementos de entrada em uma string de dados. |
9 | serializeArray () Serializa todos os formulários e elementos de formulário como o método .serialize (), mas retorna uma estrutura de dados JSON para você trabalhar. |
Eventos JQuery AJAX
Você pode chamar vários métodos JQuery durante o ciclo de vida do progresso da chamada AJAX. Com base em diferentes eventos / fases, os seguintes métodos estão disponíveis -
Você pode passar por todos os eventos AJAX .
Sr. Não. | Métodos e Descrição |
---|---|
1 | ajaxComplete (callback) Anexe uma função a ser executada sempre que uma solicitação AJAX for concluída. |
2 | ajaxStart (callback) Anexe uma função a ser executada sempre que uma solicitação AJAX começar e não houver nenhuma ativa. |
3 | ajaxError (callback) Anexe uma função a ser executada sempre que uma solicitação AJAX falhar. |
4 | ajaxSend (callback) Anexe uma função a ser executada antes que uma solicitação AJAX seja enviada. |
5 | ajaxStop (callback) Anexe uma função a ser executada sempre que todas as solicitações AJAX forem encerradas. |
6 | ajaxSuccess (callback) Anexe uma função a ser executada sempre que uma solicitação AJAX for concluída com êxito. |