(Parte 1 de 2)

Página 1 de 6 E-mail professor: sandrotc@anhanguera.edu.br –Arquivo: dw03 Fundamentos de Ajax.doc

Fundamentos de Ajax e o Modelo DOM

Introdução

O Ajax é uma nova tecnologia em ascensão e, embora o Ajax seja incontestavelmente atual, ele não é realmente novo. Ajax não é por si só tecnologia, mas sim uma forma de mesclar outras tecnologias que já conhecemos a fim de tornar páginas web mais interativas. O Ajax já existe desde o final da década de 90. O Ajax reúne várias tecnologias Web bem estabelecidas e as usa de maneira nova e interessante. Os princípios do Ajax separam elegantemente o cliente do servidor e podem ser utilizados com qualquer linguagem server-side. O Ajax (Asynchronous JavaScript + XML) é um nome relativamente novo, criado por Jesse James Garret, da Adaptive Path. Este documento trata basicamente dos fundamentos do Ajax, não trazendo detalhes sobre todos os recursos do Ajax, como o objeto XMLHttpRequest para realizar requisições assíncronas em um servidor, mas trata o assunto de forma introdutória. Ao final, este documento traz um exemplo de código em HTML com JavaScript embutido que ilustra apenas um dos vários recursos do Ajax, que consiste em inserir objetos programaticamente em uma página via DOM.

A Web 2.0

O advento e, atualmente, o crescimento das conexões de banda larga fez com que os fabricantes de software para a web criassem uma nova forma de disponibilizar informações aos seus usuários. Essas mudanças consideram o início de um processo que vai nos levar a um novo modelo de Internet, a chamada Web 2.0, cuja idéia é fazer com que o usuário utilize a web para acessar aplicações, e não simples páginas estáticas e com pouca interatividade. É nesse momento que entra o Ajax, como um conjunto de tecnologias preparadas para enfrentar esse crescimento da Internet. É bom saber que o Ajax não é propriedade de empresa alguma. Não é algo que você possa baixar da Internet. Trata-se apenas de uma abordagem, uma nova maneira de pensar a arquitetura de aplicações web. Portanto, não pense que o Ajax foi inventado pela empresa Google, somente porque foi uma das primeiras empresas a usar essa técnica em suas aplicações, como por exemplo, o Google Maps, Gmail, Google News, Orkut, entre outras.

Como o Ajax Funciona?

Tecnologicamente, o Ajax dá vazão a uma grande quantidade de potenciais não realizados nas tecnologias dos navegadores Web. O Google e alguns outros dos principais competidores estão utilizando o Ajax para aumentar as expectativas do público em geral sobre o que um aplicativo Web pode fazer. Com Ajax, o fluxo de trabalho do usuário não é interrompido pela necessidade de se comunicar com o servidor. As solicitações são assíncronas, isto significa que alguns recursos da página permanecem acessíveis enquanto a página (navegador) coleta novos dados do servidor. Isto significa economia de largura de banda. Podemos concluir, portanto, que um aplicativo Ajax é um código que se comunica eficientemente com o servidor enquanto o usuário prossegue com seu trabalho. Um dos princípios do Ajax é podermos usá-lo para fazer uma requisição a um servidor web sem que seja necessário recarregar a página que estamos acessando.

Os Elementos-chave do Ajax

Como mencionado acima, o Ajax não é uma tecnologia única. É uma coleção de quatro tecnologias que se complementam. A tabela a seguir ilustra essas tecnologias e o papel de cada uma.

JavaScript Linguagem de criação de scripts de uso geral projetada para ser embutida nos navegadores através dos interpretadores JavaScript. Aplicativos Ajax são escritos em JavaScript.

Cascading Style Sheets (CSS)

Em um aplicativo Ajax, a estilização de uma interface com o usuário pode ser modificada interativamente por meio de CSS.

Document Object Model (DOM)

O DOM apresenta a estrutura das páginas Web como um conjunto de objetos programáveis que pode ser manipulado com JavaScript, permitindo modificar a interface

Página 2 de 6 E-mail professor: sandrotc@anhanguera.edu.br –Arquivo: dw03 Fundamentos de Ajax.doc instantaneamente e programaticamente, redesenhando partes da página.

Objeto XMLHttpRequest

Este objeto permite recuperar dados do servidor Web em segundo plano. O formato geral dos dados é baseado em XML, mas funciona bem com quaisquer dados baseados em texto. Além desta ferramenta, é possível buscar dados do servidor de outras maneiras.

Três das quatro tecnologias – CSS, JavaScript e DOM – têm sido referidas coletivamente como Dynamic HTML, ou abreviando, DHTML. A DHTML era, em 1997, a grande promessa sobre a evolução de páginas Web. Oferecia a capacidade de criar interfaces interativas não-convencionais para páginas Web, mas mesmo assim nunca superou o problema da atualização de página inteira. O Ajax usa maciçamente a DHTML, mas, acrescentando as solicitações assíncronas, ele pode estender a longevidade de uma página Web consideravelmente.

Todas essas tecnologias já estão pré-instaladas nos navegadores Web mais modernos, incluindo o Microsoft Internet Explorer, a família dos navegadores Mozilla, incluindo Firefox, Netscape, Opera, Safari da Apple e Konqueror. Felizmente, existem maneiras de lidar com a incompatibilidade de múltiplos navegadores, mas são frustrantemente trabalhosas, apesar de que essa situação foi amenizada nos últimos anos. Os navegadores presentes em PDAs e Smartphones geralmente oferecem uma lista reduzida de recursos e não suportam a linha completa das tecnologias Ajax. Por enquanto, o Ajax é principalmente uma tecnologia para máquinas desktop e laptop. Até mesmo porque, as telas reduzidas de PDAs e métodos de entrada provavelmente seriam um problema mesmo se eles suportassem integralmente o Ajax.

Concorrente Ajax

O Adobe Flash permite que filmes sejam transmitidos por stream, isto é, reproduzidos à medida que são carregados, permitindo que os usuários vejam os primeiros bits do filme antes dos últimos bits chegarem. Filmes flash são interativos e programados com ActionScript, um primo próximo do JavaScript. Possui algum suporte para entrada de formulário e outros como jogos interativos, GUI de negócios. Flash é acessado por um Plug-in. É uma idéia ruim, mas navegadores para Windows, GNU/Linux e MacOSX já distribuem como parte da instalação.

O Modelo DOM

DOM (Modelo de Objeto de Documentos) é a interface de programação usada para manipulação de dados em documentos HTML e XML, que disponibiliza os dados como um conjunto de nós que podem ser manipulados programaticamente através da linguagem de programação de scripts JavaScript. Esses nós obedecem a uma hierarquia que permite-nos acessar e manipular os objetos de um documento. Em um aplicativo Ajax, a maioria das alterações para a interface com o usuário será feita com o DOM.

Tags HTML em uma página Web são organizados em uma estrutura em forma de árvore. A raiz da árvore é o tag <HTML>, que representa o documento. O tag <BODY> representa o corpo do documento e é a raiz da estrutura do documento vísivel. Dentro do corpo, encontramos tags de lista, tabela, parágrafo, link e outros tipos de tags, podendo estar uns arranjados dentro dos outros, como você já conhece da linguagem HTML.

Uma representação DOM de uma página Web também é estruturada como uma árvore composta de elementos (nós) que podem conter nós filhos dentro deles e assim por diante recursivamente. A variável global document serve, através da linguagem JavaScript, como ponto de partida para todas as manipulações DOM. O elemento DOM possui um único elemento pai, zero ou mais elementos filhos e qualquer número de atributos que são armazenados como um array associativo (uma chave textual como width ou style).

Modificar o DOM irá alterar a marcação HTML e, como conseqüência, alterar a apresentação da página. Veja, na figura seguinte, a hierarquia dos objetos na metodologia DOM.

Página 3 de 6 E-mail professor: sandrotc@anhanguera.edu.br –Arquivo: dw03 Fundamentos de Ajax.doc

O DOM representa um documento HTML como uma estrutura de árvore, onde cada elemento representa um tag na marcação HTML.

Alguns exemplos do que o Ajax pode fazer

O código do documento a seguir ilustra uma página HTML com funções JavaScript embutidas. Os códigos seguintes serão explicados em detalhes durante aula em laboratório de informática. Veja um primeiro exemplo:

<html> <head>

<title>Inserindo itens em uma lista usando DOM</title>

<script language="javascript"> function IncluiItemLista() { var cTexto = document.form1.form_texto.value; var lLista = document.getElementById('html_lista'); var cNovoItemLista = document.createElement('LI'); var cNovoTexto = document.createTextNode(cTexto); lLista.appendChild(cNovoItemLista); cNovoItemLista.appendChild(cNovoTexto); } </script>

<body>

<form name="form1">

<input type="text" name="form_texto">

<input type="button" value="Insere item na lista" onClick="IncluiItemLista();">

<ul id="html_lista">

<li>Este é um item da lista que será incrementada via DOM</li>

Página 4 de 6 E-mail professor: sandrotc@anhanguera.edu.br –Arquivo: dw03 Fundamentos de Ajax.doc

A função getElementsByTagName retorna um array (estrutura de dados) contendo a relação dos nodos filhos do elemento especificado como parâmetro. A seguir, um outro exemplo utilizando a esta função.

<html> <head>

<title>Obtendo conteúdo de nodos usando DOM</title>

<script language="javascript"> function MostraNosFilhos() { var celulasTabela = document.getElementsByTagName('td'); for (i = 0; i < celulasTabela.length; i++) { var x = celulasTabela[i].childNodes; alert(x[0].nodeValue); }

<body>

<td>Ajax: JavaScript + CSS + DOM + objeto XMLHttpRequest</td>

<td>Ajax: Asynchronous JavaScript + XML</td>

<td>Ajax é fantástico!!!</td>

<a href="javascript:MostraNosFilhos();">Clique aqui para ver os nós filhos</a>

(Parte 1 de 2)

Comentários