114 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			114 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | ||
|  | title: AJAX | ||
|  | localeTitle: AJAX | ||
|  | --- | ||
|  | ## AJAX
 | ||
|  | 
 | ||
|  | **AJAX** significa **asynchronous JavaScript And XML** . Não é uma linguagem de programação. É uma tecnologia para desenvolver aplicativos da Web melhores, mais rápidos e interativos usando HTML, CSS, JavaScript e XML. | ||
|  | 
 | ||
|  | 1.  HTML: Hypertext Markup Language (HTML) é usado para definir a estrutura de um aplicativo da Web. | ||
|  | 2.  CSS: CSS (Cascading Style Sheet) é usado para fornecer aparência e estilo a um aplicativo da Web. | ||
|  | 3.  JavaScript: JavaScript é usado para tornar um aplicativo da Web interativo, interessante e amigável. | ||
|  | 4.  XML: Extensible Markup Language (XML) é um formato para armazenar e transportar dados do servidor da Web. | ||
|  | 
 | ||
|  | #### Qual é o significado de assíncrono no AJAX?
 | ||
|  | 
 | ||
|  | Assíncrono significa que o aplicativo da Web pode enviar e receber dados do servidor da Web sem atualizar a página. Esse processo em segundo plano de envio e recebimento de dados do servidor, juntamente com a atualização de diferentes seções de uma página da Web, define a propriedade / recurso Assíncrono do AJAX. | ||
|  | 
 | ||
|  | #### Como o **AJAX** funciona?
 | ||
|  | 
 | ||
|  | AJAX faz uso de um **objeto XMLHttpRequest** interno do navegador para solicitar dados de um servidor Web e **HTML DOM** para exibir ou usar os dados. | ||
|  | 
 | ||
|  | **Objeto XMLHttpRequest** : É uma API na forma de um objeto cujos métodos ajudam na transferência de dados entre um navegador da web e um servidor da web. | ||
|  | 
 | ||
|  | **DOM HTML** : Quando uma página da Web é carregada, o navegador cria um Modelo de Objeto de Documento da página. | ||
|  | 
 | ||
|  |  | ||
|  | 
 | ||
|  | **Crie um objeto XMLHttpRequest:** | ||
|  | 
 | ||
|  | ```javascript | ||
|  | var xhttp = new XMLHttpRequest();  | ||
|  | ``` | ||
|  | 
 | ||
|  | **Propriedades do objeto XMLHttpRequest:** | ||
|  | 
 | ||
|  | `readystate` é uma propriedade do objeto XMLHttpRequest que contém o status do XMLHttpRequest. | ||
|  | 
 | ||
|  | *   0: pedido não inicializado | ||
|  | *   1: conexão do servidor estabelecida | ||
|  | *   2: pedido recebido | ||
|  | *   3: solicitação de processamento | ||
|  | *   4: pedido finalizado e resposta pronta | ||
|  | 
 | ||
|  | `onreadystatechange` é uma propriedade do objeto XMLHttpRequest que define uma função a ser chamada quando a propriedade readyState é alterada.   | ||
|  | 
 | ||
|  | `status` é uma propriedade do objeto XMLHttpRequest que retorna o número de status de uma solicitação | ||
|  | 
 | ||
|  | *   200: "OK" | ||
|  | *   403: "Proibido" | ||
|  | *   404 não encontrado" | ||
|  | 
 | ||
|  | **Métodos de objeto XMLHttpRequest:** Para enviar uma solicitação para um servidor da Web, usamos os métodos open () e send () do objeto XMLHttpRequest. | ||
|  | 
 | ||
|  | ```javascript | ||
|  | xhttp.open("GET", "content.txt", true);  | ||
|  |  xhttp.send();  | ||
|  | ``` | ||
|  | 
 | ||
|  | **Crie uma função changeContent () usando JavaScript:** | ||
|  | 
 | ||
|  | ```javascript | ||
|  | function changeContent() {  | ||
|  |   var xhttp = new XMLHttpRequest();  | ||
|  |   xhttp.onreadystatechange = function() {  | ||
|  |     if (this.readyState == 4 && this.status == 200) {  | ||
|  |      document.getElementById("foo").innerHTML = this.responseText;  | ||
|  |     }  | ||
|  |   };  | ||
|  |   xhttp.open("GET", "content.txt", true);  | ||
|  |   xhttp.send();  | ||
|  |  }  | ||
|  | ``` | ||
|  | 
 | ||
|  | **Exemplo de AJAX para alterar o conteúdo de uma página da web:** | ||
|  | 
 | ||
|  | ```HTML | ||
|  | <!DOCTYPE html>  | ||
|  |  <html>  | ||
|  |  <body>  | ||
|  |   | ||
|  |  <div id="foo">  | ||
|  |  <h2>The XMLHttpRequest Object</h2>  | ||
|  |  <button type="button" onclick="changeContent()">Change Content</button>  | ||
|  |  </div>  | ||
|  |   | ||
|  |  <script>  | ||
|  |  function changeContent() {  | ||
|  |   var xhttp = new XMLHttpRequest();  | ||
|  |   xhttp.onreadystatechange = function() {  | ||
|  |     if (this.readyState == 4 && this.status == 200) {  | ||
|  |       document.getElementById("foo").innerHTML =  | ||
|  |       this.responseText;  | ||
|  |     }  | ||
|  |   };  | ||
|  |   xhttp.open("GET", "content.txt", true);  | ||
|  |   xhttp.send();  | ||
|  |  }  | ||
|  |  </script>  | ||
|  |   | ||
|  |  </body>  | ||
|  |  </html>  | ||
|  | ``` | ||
|  | 
 | ||
|  | O arquivo `content.txt` deve estar presente no diretório raiz do aplicativo da Web. | ||
|  | 
 | ||
|  | ### Fontes
 | ||
|  | 
 | ||
|  | *   [W3Schools](https://www.w3schools.com/js/js_ajax_intro.asp) | ||
|  | *   [MDN web docs](https://developer.mozilla.org/en-US/docs/Web/Guide/AJAX/Getting_Started) | ||
|  | 
 | ||
|  | ### Outros recursos
 | ||
|  | 
 | ||
|  | *   [W3Schools](https://www.w3schools.com/js/js_ajax_intro.asp) | ||
|  | *   [MDN web docs](https://developer.mozilla.org/en-US/docs/Web/Guide/AJAX/Getting_Started) |