Amirton Chagas
http://amirton.wordpress.com
[email protected]
Este trabalho está licenciado sob
uma Licença Creative Commons
Atribuição 2.5 Brasil. Para ver
uma cópia desta licença, visite
http://creativecommons.org/lice
nses/by/2.5/br/ ou envie uma
carta para Creative Commons,
171 Second Street, Suite 300,
San Francisco, California 94105,
USA.

Páginas podem ser dinâmicas
 A mudança de página não…

Enviar muito conteúdo não é uma boa idéia
 Tempo de carregamento excessivo
 Complexidade para manutenção

O que fazer?

AJAX!
 Asynchronous Javascript And XML

Requisições assíncronas a mais conteúdo

Respostas facilmente interpretadas

Não se limita a uma tecnologia
 É um conceito!
 Não é obrigatório nem o uso de Javascript, nem de
XML
▪ Nem mesmo de chamadas assíncronas!
SEM AJAX (...)
COM AJAX

http://images.google.com

http://bing.com/images

Hotmail

GMail

iGoogle

Fotos no Orkut e Facebook

Google

“É a maneira como JavaScript vê a página
HTML e o estado do browser”
 Wikipedia 

É a representação interna usada pelos
browsers para armazenar e prover acesso à
estrutura da página.

DOM Level 2
 IE6+, FF 1.5+, Opera, Safari...

Função $
 Retorna um objeto jQuery
 $(document)
▪ Retorna o análogo a “document” de JavaScript
 $(“div”)
▪ Retorna todos os elementos <div> atualmente na DOM
 $(“div.bkWt”)
▪ Retorna todos os elementos <div class=“bkWt”> na DOM
 $(“#IdElmt”)
▪ Retorna o elemento de id IdElmt
 $(“div, p, h2”)
▪ Retorna todos os elementos div ou p ou h2.

.append() e .prepend()
 Insere o conteúdo passado como parâmetro DENTRO da tag,
depois ou antes (respectivamente) do conteúdo atual

.after(), .before()
 Insere o conteúdo passado como parâmetro depois ou antes,
FORA da tag.

.replaceWith()
 Troca a TAG (não apenas o conteúdo) pelo conteúdo passado
como parâmetro

.empty()
 Limpa o conteúdo da tag (limpa também eventos associados)

.children()
 Todos os nós filhos
 Pode-se passar restrições, como .children(“.txAzul”)
▪ Só retorna os filhos de classe txAzul

.next() e .nextAll(), prev() e prevAll()
 Retorna o próximo e todos os próximos elementos de mesmo nível.
prev e prevAll fazem o mesmo, mas retornando os anteriores
 Também aceitam restrições

.siblings()
 Todos os nós de mesmo nível
 Também aceita restrições

Mais em: http://oscarotero.com/jquery/

No mundo síncrono, uma chamada é feita
após a outra, numa ordem pré-determinada

No mundo assíncrono, entre uma chamada e
outra, podem acontecer várias outras...
 Callback é a função a ser executada quando o
método assíncrono terminar sua execução

.load(url, [data], [callback])
 Requisita um documento html para a url
 [data] são campos enviados como POST


$.get(url, [data], [callback], [type])
$.post(url, [data], [callback], [type])
 Requisita uma resposta para a url (via get ou post,
respectivamente)
 [type] denota o tipo de resposta: "xml", "html",
"script", "json", "jsonp", ou "text”

$.ajax(opções)
 Maior flexibilidade
 Maior controle
▪ Funções de callback para:
▪ Antes da requisição
▪ Depois da requisição terminar com sucesso
▪ Depois da requisição terminar com erro
 Maior complexidade
▪ Lida direto com o objeto XMLHttpRequest
▪ Muitos parâmetros para setar
▪ Na maioria dos casos, $.get, $.put ou .load já bastam...

Idéia desenvolvida pela Microsoft
 Aprimorada pela Mozilla Foundation
 Padronizada posteriormente pelo W3C

Maneira de um script requisitar dados
diretamente a um servidor web
 E receber a resposta em um formato conhecido
▪ XML, no caso...

É usado por baixo dos panos em praticamente
todas as APIs baseadas em Ajax
 jQuery é uma delas

Usar direto, sem APIs, é error-prone e complexo
 Não é impossível...
▪ Precisa tomar cuidado com maneiras diferentes de criar o
objeto nos diferentes browsers
▪ A manipulação também pode variar um pouco
▪ Alguns códigos “místicos” podem surgir
▪ As APIs como jQuery já fazem isso para você...

http://www.linhadecodigo.com.br/Artigo.aspx?i
d=922

A Licença Simplificada não é uma licença
propriamente dita. Ela é apenas uma referência útil
para entender a Licença Jurídica (a licença integral) ela é uma expressão dos seus termos-chave que pode
ser compreendida por qualquer pessoa. A Licença
Simplifica em si não tem valor legal e seu conteúdo
não aparece na licença integral.

O Creative Commons não é um escritório de
advocacia e não presta serviços jurídicos. A
distribuição, exibição ou inclusão de links para esta
Licença Simplificada não estabelece qualquer relação
advocatícia.
Download

Pacote Web - Ajax