AJAX. Prof. Marcos Alexandruk

Documentos relacionados
AJAX (Asynchronous Javascript And XML)

AJAX. Aula 01 - Introdução

PROGRAMAÇÃO PARA INTERNET. Fonte: Raul Paradeda

Ajax Asynchronous JavaScript and Xml

Ajax Asynchronous JavaScript and Xml

Programação para Internet

AJaX Asy s nchronous s J avasc S ript p t a nd d XML

Desenvolvimento de Sistemas Web Prof. Leandro Roberto. Aula 18 JavaScript: Eventos MySQL PHP (insert, update e delete)

cadastro de usuários utilizando Ajax e PHP para inserir os dados em uma tabela MySQL.

INTEGRAÇÃO DA METODOLOGIA DE DESENVOLVIMENTO AJAX COM SERVLETS JAVA

AJAX é baseado nos seguintes padrões WEB: JavaScript, XML, HTML, CSS.

AJAX é o acrônimo de Asychronous JavaScript and XML, ou seja, JavaScript e XML assíncronos;

Desenvolvimento de Aplicações para Internet Aula 11

Linguagens, Web Services e WEB 2.0

Introdução ao AJAX Métodos Open e Send

Conceitos de Ajax Exemplos de uso do Ajax no braço, muitos exemplos, muito código (HTML, CSS, JavaScript, PHP, XML, JSON)

Programação para Internet

Ajax não é dependente dos servidores Web, e como tal poderá ser usado com PHP, JSP, ASP e ASP.NET.

PROGRAMAÇÃO PARA INTERNET RICA AJAX

AJAX no GASweb. Mas e afinal, para que usamos o AJAX?

DESENVOLVIMENTO DE SISTEMAS WEB. Lista de Exercícios AV2-01. Luiz Leão

EXERCÍCIOS DE REVISÃO DE CONTEÚDO QUESTÕES DISSERTATIVAS

AJAX - Tutorial. Anselmo Luiz Éden Battisti, Christiano Julio Pilger de Brito. 18 de agosto de 2006

Informática Parte 23 Prof. Márcio Hunecke

6. Introdução à Linguagem PHP

PROGRAMAÇÃO PARA INTERNET RICA RICH INTERNET APPLICATIONS

Construindo um sistema simples de cadastro de fornecedores em PHP e MySQL.

Java: Linguagem de programação (OOP) JavaScipt: Linguagem de scripts (OOP)

22/05/2012 CRIANDO UM PROJETO COM TELAS ESTRUTURA DA APLICAÇÃO LOGIN BANCO DE DADOS TAREFAS PHP MYSQL PARTE 2

Carregando dados do Banco de Dados MySQL através de uma tag SELECT

Introdução ao Javascript

Capítulo 4. Programação em ASP

Desenvolvimento Web. Introdução Geral. Prof. Vicente Paulo de Camargo

Desenvolvimento Web XHTML Formulários. Prof. Bruno E. G. Gomes

GUIA PHP com MYSQL Autor: Everton Mendes Messias

Protocolo HTTP. - Características. - Modelo Requisição/Resposta. - Common Gateway Interface (CGI)

Programação para Internet I. Fernando F. Costa

Desenvolvimento de Aplicações Web. Prof. José Eduardo A. de O. Teixeira / j.edu@vqv.com.br

Desenvolvimento de Aplicações para Internet Aula 5

Redes de Computadores e Aplicações Camada de aplicação IGOR ALVES

if( document.dados.tx_ .value=="" document.dados.tx_ .value.indexof('.

INTRODUÇÃO AO JQUERY PROF. ME. HÉLIO ESPERIDIÃO

O MySQL é o banco de dados mais popular usado com PHP.

Sessão e inclusão de arquivos no PHP

Introdução à HTML Dinámico. O linguagem JavaScript.

Aula 17 Introdução ao jquery

Programação WEB I DOM (Document Object Manager)

Professor Jefferson Chaves Jefferson de Oliveira Chaves

INTRODUÇÃO AO JQUERY PARTE 2. Prof. Me. Hélio Esperidião

Prof Evandro Manara Miletto. parte 2

EA975 - Laboratório de Engenharia de Software

Internet e Programação Web

Lista de Revisão. 3. Analise a afirmativa a seguir como verdadeira ou falsa e justifique.

Canvas. <canvas id= meucanvas width= 200 height= 100 ></canvas>

Introdução ao PHP. Prof. Késsia Marchi

Desenvolvimento Web. JavaScript aula II variáveis (cont.) e diálogos. Professor: Bruno Gomes

Programação Web Prof. Wladimir

Introdução Conceitos Iniciais Metodologia Web Services Considerações Finais. Introdução. Conceitos Iniciais Metodologia

Basicamente iremos precisar de uma base de dados na qual iremos armazenar os registros feitos pelos vistantes: Vamos armazenar os seguintes dados:

Internet. Protocolos. Principais Serviços. Chat TELNET FTP. Definições Básicas

Introdução à Engenharia da Computação. Tecnologia Web Professor Machado

Programação Cliente em. jquery. Fontes: Wendell S. Soares e vinteum.com

Nesta disciplina aprenderemos. HTML CSS JavaScript Jquery PHP

Passos Preliminares: Acessando a máquina virtual via ssh.

English Português. By erickalves 25 Julho, :08. Devido à política (#) de segurança. Encontrar Blogs Crie o seu blog de graça Ganhe prêmios

<?php include("conn.php");

ZK Framework. Utilizando Ajax sem Javascript

Primeiro contato com JavaScript

Transcrição:

Prof. Marcos Alexandruk m.alexandruk@hotmail.com

Asynchronous JavaScript and XML Não é uma "nova tecnologia" Utiliza os recursos já existentes do JavaScript Jesse James Garret utilizou o termo pela primeira vez em 2005: "Ajax: A New Approach to Web Applications"

Aplicações Desktop geralmente apresentam interfaces ricas em recursos, facilidades operacionais e grande velocidade no retorno das informações aos usuários (baixo tempo de resposta). Aplicações Web não apresentavam estas mesmas características.

Ajax incului recursos que possibilitam às aplicações Web vantagens semelhantes às apresentadas pelas aplicações Desktop. A Web deixa de ser apenas uma provedora de conteúdo e passa a ser uma plataforma de aplicativos.

"Web 2.0 é a mudança para uma internet como plataforma... a regra mais importante é desenvolver aplicativos que aproveitem os efeitos de rede para se tornarem melhores quanto mais são usados pelas pessoas, aproveitando a inteligência coletiva". - Tim O'Reilly, 2004.

Principais Aspectos do AJAX: Dinamismo e interatividade, utilizando DOM e JavaScript Recuperação assíncrona de dados, utilizando a classe XMLHttpRequest Camada de apresentação padronizada, utilizando XHTML e CSS

Aplicação web clássica: Algum evento (como o clique do mouse) na interface HTML dispara uma requisição HTTP para um servidor O servidor recebe a requisição, verifica o que deve fazer (cálculo, acesso ao banco de dados, etc.) e retorna uma resposta em HTML que é recebida pelo browser, que realiza um reload da página.

Aplicação web clássica: Após a requisição ter sido disparada o usuário nada pode fazer enquanto aguarda a resposta do servidor. A cada retorno do servidor toda a interface (página HTML) é recarregada.

Aplicação AJAX: Pode ser construídas de maneira que o usuário não venha a perceber que está sendo feita uma comunicação com o servidor. Usuário não é obrigado a aguardar retornos que interrompem o fluxo de trabalho na interface. (Oferece assim vantagem similar às aplicações desktop.)

Aplicação AJAX: Utiliza uma nova camada de software no lado cliente (engine AJAX) que é escrita em JavaScript. Executa processamentos assíncronos de comunicação com o servidor (troca de dados) e também é responsável pela renderização da interface do usuário.

Processamento síncrono: aguarda o término da execução de um processo para iniciar outro. Processamento assíncrono: permite que outros processos sejam acionados ao mesmo tempo da execução do primeiro.

Classe XMLHttpRequest API (Application Programming Interface) que disponibiliza as funcionalidades HTTP (HyperText Transfer Protocol) permitindo a troca de dados entre cliente (browser) e servidor. Internet Explorer disponibilizou o recurso na forma de um ActiveX. Outros navegadores seguiram especificação da W3C.

XMLHttpRequest + onreadystatechange : Object + readystate : int + responsetext : String + responsexml : String + status : int + statustext : String + abort() : void + getallresponseheaders() : String + getresponseheader(headerneame : String) : String + open(method: String, url : String, async : boolean, username : String, password: String) : void + send(content: String) : void + setrequestheader(label: String, value: String) : void

Criando um objeto da classe XMLHttpRequest var XMLTttp; try { XMLHttp = new XMLHttpRequest(); // W3C catch(e) { try { XMLHttp = new ActiveObject("Msxml12.XMLHTTP"); // IE 6.X catch(ee) { try { XMLHttp = new ActiveObject("Microsoft.XMLHTTP"); // IE 5.X catch(eee) { alert ("Não conseguiu criar o objeto: " + eee.description);

pesquisarcepxml.html <HTML> <HEAD> <script language="javascript" type="text/javascript" src="consultarcepxml.js"></script> <TITLE>CONSULTAR CEP</TITLE> </HEAD> <BODY> <P align=center><font face="comic Sans MS" size=5>pesquisar Cep</FONT></P> <P align=center> <FORM title=consultacep name=formconsultacep action="javascript:atualiza(formconsultacep.codigocep.value);" method=post> <P align=center> <FONT size=4>digite o Cep: <INPUT maxlength=10 size=9 name=codigocep> </FONT></P> <P align=center> <INPUT type=submit value=pesquisar name=b-pesquisar ></FONT></P></FORM> <P></P> <P align=center><font size=5></font> </P> <div id=atualiza> </div> </BODY> </HTML>

consultarcepxml.js (1/2) var comunicacao; function buscardados(url,codigocep) { comunicacao = null; // Procura por um objeto nativo (Mozilla/Safari) if (window.xmlhttprequest) { comunicacao = new XMLHttpRequest(); comunicacao.onreadystatechange = tratarretorno; comunicacao.open("get", url+'?codigocep='+codigocep, true); comunicacao.send(null); else if (window.activexobject) // Procura por uma versao ActiveX (IE) { comunicacao = new ActiveXObject("Microsoft.XMLHTTP"); if (comunicacao) { comunicacao.onreadystatechange = tratarretorno; comunicacao.open("get", url+'?codigocep='+codigocep, true); comunicacao.send();

consultarcepxml.js (2/2) function tratarretorno() { if ( comunicacao.readystate == 4 ) { if (comunicacao.status == 200) { var result = comunicacao.responsexml; var arearepaint = document.getelementbyid( 'atualiza' ); var tagxml = result.getelementsbytagname( 'cep' ); var endereco = tagxml[0].getelementsbytagname('endereco')[0].firstchild.nodevalue; var bairro = tagxml[0].getelementsbytagname('bairro')[0].firstchild.nodevalue; var cidade = tagxml[0].getelementsbytagname('cidade')[0].firstchild.nodevalue; var retorna = "<font color=red>" + "Endereco: " + endereco + "<br>" + " Bairro: " + bairro + "<br>" + " Cidade: " + cidade + "<br>" + "</font>"; arearepaint.innerhtml = retorna; else { alert("houve um problema ao obter os dados:\n" + comunicacao.statustext); function Atualiza(codigoCep) { buscardados("consultarcepxml.php", codigocep);

consultarcepxml.php (1/2) <? // conexão com o banco de dados $host = "127.0.0.1"; $user = "root"; $senha = ""; $con = mysql_connect($host, $user, $senha) or die ("ERRO DE CONEXÃO COM SGDB ". mysql_error()); mysql_select_db("livro"); // pega o parametro enviado pelo formulario HTML import_request_variables("gp"); // prepara e executa a sentença sql $sql = "SELECT endereco, bairro, cidade FROM cep WHERE codigocep = '$codigocep'"; $resultado = mysql_query($sql) or die("a busca do cep falhou: ". mysql_error() ); $linha = mysql_fetch_array($resultado);

consultarcepxml.php (2/2) // prepara o retorno dos dados em XML para a engine AJAX header("content-type: text/xml"); echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n"; echo "<cep>\n"; if ($linha) { $endereco = $linha["endereco"]; $bairro = $linha["bairro"]; $cidade = $linha["cidade"]; echo "<endereco>$endereco</endereco>\n"; echo "<bairro>$bairro</bairro>\n"; echo "<cidade>$cidade</cidade>\n"; else echo "<erro>cep Inexistente!!!</erro>\n"; echo "</cep>\n";?>