SlideShare a Scribd company logo
1 of 21
Download to read offline
• Estudar e compreender os conceitos e inter-
relacionar as tecnologias:
– DOM
– JavaScript e CSS
– Ajax
– JSON
Modificando o HTML 5
Dinamicamente
• Document Object Model:
– Desenvolvida pela W3C nos anos 90.
– Especificação para manipular documentos: HTML
e XML.
• Acessar e criar novos elementos dentro de
documentos.
– Independente de linguagem:
• Qualquer linguagem pode implementar a API DOM.
• Conjunto de métodos e propriedades.
• Pode-se manipular o HTML:
– JavaScript com DOM:
– Métodos e Propriedades:
<header id=“cabeca”>
<img scr=“logo.jpg” />
<p>Site da Empresa...
</header>
var x =
document.getElementById(“cabeca”);
x.getElementsByTagName(“img”);
• Pode-se capturar eventos que acontecem no
documento com o DOM:
document.getElementById(“cabeca”).onclick = function()
{
alert(‘Você clicou em mim!’);
}
Alterando Estilos Dinamicamente
• Usa-se em conjunto com o DOM:
– Modificação da propriedade style do elemento.
– Alteração das propriedades CSS via JavaScript
var x = document.getElementById(“cabeca”);
x.style.background = ‘#CCC’;
x.style.color = ‘#000’;
}
Carregando Conteúdos
Dinamicamente
• Objeto do navegador:
– XmlHTTPResquest
• Permite carregar conteúdos de forma
assíncrona:
– Sem reload do documento.
– Com o conteúdo carregado, usa-se o DOM para
manipular o documento.
– As resposta do servidor podem ser em HTML,
XML, JSON ou String Simples.
function abreAjax() {
var obj_xml_http_resquest;
try {
obj_xml_http_resques = new XMLHttpRequest();
} catch(ee) {
try {
obj_xml_http_resques = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
obj_xml_http_resques = new
ActiveXObject("Microsoft.XMLHTTP");
} catch(E) {
obj_xml_http_resques = false;
}
}
}
return obj_xml_http_resques;
}
var ajax_obj = abreAjax();
ajax_obj.open('POST', 'categoria.php?ajax=true&cmd=cadastrar', true);
ajax_obj.setRequestHeader('Content-Type', 'application/x-www-form-
urlencoded');
ajax_obj.onreadystatechange = function ()
{
if(ajax_obj.readyState == 1)
{
// Carregando solicitação
}
if(ajax_obj.readyState == 4)
{
if(ajax_obj.status == 200)
{
// Solicitação concluída
}
}
};
ajax_obj.send(dataPost);
Transportando Dados entre Serviços
• JavaScript Object Notation:
– Desenvolvida por Douglas Crockford (1999).
– Não é uma tecnologia nova: RFC: 4687.
– É uma Estrutura de Dados em JavaScript:
• Especificamente: Notação de Objetos.
– Estes objetos podem ser armazenados em
arquivos:
• Extensão: .json
• Mime-Type: application/json
• Utilização Prática do JSON:
– WebServices, por exemplo: Google e Yahoo
• Seu uso não necessita do interpretador
JavaScript instalado:
– Linguagens como, por exemplo, PHP e Java tem
seus interpretadores JSON.
• Muito utilizado em detrimento do XML, mas
as duas tecnologias podem ser utilizadas
juntas.
• A sintaxe do JSON é simples: par:valor
• Pode-se validar a sintaxe em:
– http://jsonlint.com
• Onde par é uma propriedade do objeto, que seu
valor pode ser:
– String
– Number
– Object { // objeto vazio em Js }
– Array [‘João’, ‘Maria’, ‘Pedro’]
– Boleana (true ou false)
– Null
{ “aluno" : [
{ "nome": "João", "notas": [ 8, 9, 7 ] },
{ "nome": "Maria", "notas": [ 8, 10, 7 ] },
{ "nome": "Pedro", "notas": [ 10, 10, 9 ] }
]
}
<?xml version='1.0' encoding='utf-8'?>
<aluno nome=“João”>
<provas>
<prova nota=“8” />
<prova nota=“9” />
<prova nota=“7” />
</provas>
</aluno>
• Trabalhando com JSON em JavaScript:
var dados_alunos = eval(json_alunos);
alert(dados_alunos.aluno[0].nome); // Exibe “João”
alert(dados_alunos.aluno[0].notas[0]); // Exite “8”
var json_alunos = {
“aluno" : [
{ "nome": "João", "notas": [ 8, 9, 7 ] },
{ "nome": "Maria", "notas": [ 8, 10, 7 ] },
{ "nome": "Pedro", "notas": [ 10, 10, 9 ] }
]
};
www.tiago.blog.br
tiago@tiago.blog.br

More Related Content

What's hot

JavaScript - Introdução com Orientação a Objetos
JavaScript - Introdução com Orientação a ObjetosJavaScript - Introdução com Orientação a Objetos
JavaScript - Introdução com Orientação a ObjetosEduardo Mendes
 
13 Java Script - Validação de formulário
13 Java Script  - Validação de formulário13 Java Script  - Validação de formulário
13 Java Script - Validação de formulárioCentro Paula Souza
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScriptBruno Catão
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)Armando Daniel
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 
Javascript Orientado a Objeto
Javascript Orientado a ObjetoJavascript Orientado a Objeto
Javascript Orientado a ObjetoFábio Elísio
 
Logica programacao python-slides
Logica programacao python-slidesLogica programacao python-slides
Logica programacao python-slidesronaldo ramos
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScriptCarlos Eduardo Kadu
 
11 Java Script - Exemplos com eventos
11 Java Script - Exemplos com eventos11 Java Script - Exemplos com eventos
11 Java Script - Exemplos com eventosCentro Paula Souza
 
Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Bruno Grange
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de SoftwareLeinylson Fontinele
 
PHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de DadosPHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de DadosDaniel Brandão
 

What's hot (20)

JavaScript - Introdução com Orientação a Objetos
JavaScript - Introdução com Orientação a ObjetosJavaScript - Introdução com Orientação a Objetos
JavaScript - Introdução com Orientação a Objetos
 
13 Java Script - Validação de formulário
13 Java Script  - Validação de formulário13 Java Script  - Validação de formulário
13 Java Script - Validação de formulário
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScript
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Javascript Orientado a Objeto
Javascript Orientado a ObjetoJavascript Orientado a Objeto
Javascript Orientado a Objeto
 
Logica programacao python-slides
Logica programacao python-slidesLogica programacao python-slides
Logica programacao python-slides
 
07 html formulários
07 html   formulários07 html   formulários
07 html formulários
 
Curso javascript básico
Curso javascript básicoCurso javascript básico
Curso javascript básico
 
HTML Principios Básicos
HTML Principios BásicosHTML Principios Básicos
HTML Principios Básicos
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScript
 
Java script aula 04 - objeto array
Java script   aula 04 - objeto arrayJava script   aula 04 - objeto array
Java script aula 04 - objeto array
 
11 Java Script - Exemplos com eventos
11 Java Script - Exemplos com eventos11 Java Script - Exemplos com eventos
11 Java Script - Exemplos com eventos
 
Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)
 
Linguagem C - Vetores
Linguagem C - VetoresLinguagem C - Vetores
Linguagem C - Vetores
 
Padrões MVC
Padrões MVCPadrões MVC
Padrões MVC
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de Software
 
PHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de DadosPHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de Dados
 
Variáveis e portugol
Variáveis e portugolVariáveis e portugol
Variáveis e portugol
 
Aula03 - JavaScript
Aula03 - JavaScriptAula03 - JavaScript
Aula03 - JavaScript
 

Similar to Curso JavaScript - Aula sobre DOM e Ajax

Conexão Java 2006: Introdução ao Ajax
Conexão Java 2006: Introdução ao AjaxConexão Java 2006: Introdução ao Ajax
Conexão Java 2006: Introdução ao AjaxHelder da Rocha
 
No sql Orientado a documento
No sql Orientado a documentoNo sql Orientado a documento
No sql Orientado a documentoAlex Martins
 
Qualidade e performance de sistemas 2.0
Qualidade e performance de sistemas 2.0Qualidade e performance de sistemas 2.0
Qualidade e performance de sistemas 2.0Ivo Nascimento
 
Apresentação sobre MVVMC
Apresentação sobre MVVMCApresentação sobre MVVMC
Apresentação sobre MVVMCAlisson Agiani
 
AJAX?? Não!! Asynchronous Javascript and... JSON!!
AJAX?? Não!! Asynchronous Javascript and... JSON!!AJAX?? Não!! Asynchronous Javascript and... JSON!!
AJAX?? Não!! Asynchronous Javascript and... JSON!!Lucas Brasilino
 
Componentizando a Web com Polymer
Componentizando a Web com PolymerComponentizando a Web com Polymer
Componentizando a Web com PolymerStefan Horochovec
 
Web 2.0 e AJAX - Parte 1 / 3
Web 2.0 e AJAX - Parte 1 / 3Web 2.0 e AJAX - Parte 1 / 3
Web 2.0 e AJAX - Parte 1 / 3David Ruiz
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesUtilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesChristiano Anderson
 
Minicurso Ajax - 5. Semana de Informática PUC Minas São Gabriel
Minicurso Ajax - 5. Semana de Informática PUC Minas São GabrielMinicurso Ajax - 5. Semana de Informática PUC Minas São Gabriel
Minicurso Ajax - 5. Semana de Informática PUC Minas São GabrielMarcelo Linhares
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHPRangel Javier
 
Bancos de Dados Orientados a Objetos
Bancos de Dados Orientados a ObjetosBancos de Dados Orientados a Objetos
Bancos de Dados Orientados a ObjetosGlaucio Scheibel
 
Fisl banco de dados no sql de código aberto
Fisl   banco de dados no sql de código abertoFisl   banco de dados no sql de código aberto
Fisl banco de dados no sql de código abertoSuissa
 

Similar to Curso JavaScript - Aula sobre DOM e Ajax (20)

Conexão Java 2006: Introdução ao Ajax
Conexão Java 2006: Introdução ao AjaxConexão Java 2006: Introdução ao Ajax
Conexão Java 2006: Introdução ao Ajax
 
Slides .pptx.pdf
Slides .pptx.pdfSlides .pptx.pdf
Slides .pptx.pdf
 
Curso JavaScript - Aula jQuery
Curso JavaScript - Aula jQueryCurso JavaScript - Aula jQuery
Curso JavaScript - Aula jQuery
 
No sql Orientado a documento
No sql Orientado a documentoNo sql Orientado a documento
No sql Orientado a documento
 
Qualidade e performance de sistemas 2.0
Qualidade e performance de sistemas 2.0Qualidade e performance de sistemas 2.0
Qualidade e performance de sistemas 2.0
 
Apresentação sobre MVVMC
Apresentação sobre MVVMCApresentação sobre MVVMC
Apresentação sobre MVVMC
 
AJAX?? Não!! Asynchronous Javascript and... JSON!!
AJAX?? Não!! Asynchronous Javascript and... JSON!!AJAX?? Não!! Asynchronous Javascript and... JSON!!
AJAX?? Não!! Asynchronous Javascript and... JSON!!
 
Componentizando a Web com Polymer
Componentizando a Web com PolymerComponentizando a Web com Polymer
Componentizando a Web com Polymer
 
Web 3.0
Web 3.0Web 3.0
Web 3.0
 
Web 2.0 e AJAX - Parte 1 / 3
Web 2.0 e AJAX - Parte 1 / 3Web 2.0 e AJAX - Parte 1 / 3
Web 2.0 e AJAX - Parte 1 / 3
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesUtilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentes
 
Pos-QCon-BigData
Pos-QCon-BigDataPos-QCon-BigData
Pos-QCon-BigData
 
Minicurso Ajax - 5. Semana de Informática PUC Minas São Gabriel
Minicurso Ajax - 5. Semana de Informática PUC Minas São GabrielMinicurso Ajax - 5. Semana de Informática PUC Minas São Gabriel
Minicurso Ajax - 5. Semana de Informática PUC Minas São Gabriel
 
Mashups: Criando Valor na Web 2.0 (BandTec)
Mashups: Criando Valor na Web 2.0 (BandTec)Mashups: Criando Valor na Web 2.0 (BandTec)
Mashups: Criando Valor na Web 2.0 (BandTec)
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHP
 
Bancos de Dados Orientados a Objetos
Bancos de Dados Orientados a ObjetosBancos de Dados Orientados a Objetos
Bancos de Dados Orientados a Objetos
 
Fisl banco de dados no sql de código aberto
Fisl   banco de dados no sql de código abertoFisl   banco de dados no sql de código aberto
Fisl banco de dados no sql de código aberto
 
JustJava 2004: JAXB
JustJava 2004: JAXBJustJava 2004: JAXB
JustJava 2004: JAXB
 
jQuery
jQueryjQuery
jQuery
 
jQuery
jQueryjQuery
jQuery
 

More from Tiago Antônio da Silva

SIF - Sistemas de Informacao e Regressao Linear
SIF - Sistemas de Informacao e Regressao LinearSIF - Sistemas de Informacao e Regressao Linear
SIF - Sistemas de Informacao e Regressao LinearTiago Antônio da Silva
 
Git e GitHub: Versionamento de Código Fácil
Git e GitHub: Versionamento de Código FácilGit e GitHub: Versionamento de Código Fácil
Git e GitHub: Versionamento de Código FácilTiago Antônio da Silva
 
Caminhos na Carreira Acadêmica: A visão de um tecnólogo que fez mestrado
Caminhos na Carreira Acadêmica: A visão de um tecnólogo que fez mestradoCaminhos na Carreira Acadêmica: A visão de um tecnólogo que fez mestrado
Caminhos na Carreira Acadêmica: A visão de um tecnólogo que fez mestradoTiago Antônio da Silva
 
Análise e Projeto de Sistemas: Mockup de um Crud no Balsamiq
Análise e Projeto de Sistemas: Mockup de um Crud no BalsamiqAnálise e Projeto de Sistemas: Mockup de um Crud no Balsamiq
Análise e Projeto de Sistemas: Mockup de um Crud no BalsamiqTiago Antônio da Silva
 
Xamarin - Aula 2.1 - AppDolares - Criando a Primeira Interface
Xamarin - Aula 2.1 - AppDolares - Criando a Primeira InterfaceXamarin - Aula 2.1 - AppDolares - Criando a Primeira Interface
Xamarin - Aula 2.1 - AppDolares - Criando a Primeira InterfaceTiago Antônio da Silva
 
Xamarin - Aula 2 - Criando o Primeiro Projeto com Xamarin Forms
Xamarin - Aula 2 - Criando o Primeiro Projeto com Xamarin FormsXamarin - Aula 2 - Criando o Primeiro Projeto com Xamarin Forms
Xamarin - Aula 2 - Criando o Primeiro Projeto com Xamarin FormsTiago Antônio da Silva
 
Redes - Camada Física e Meios de Transmissão
Redes - Camada Física e Meios de TransmissãoRedes - Camada Física e Meios de Transmissão
Redes - Camada Física e Meios de TransmissãoTiago Antônio da Silva
 
Defesa do meu Mestrado: Segmentação de Imagens 3D com Crescimento de Regiões
Defesa do meu Mestrado: Segmentação de Imagens 3D com Crescimento de RegiõesDefesa do meu Mestrado: Segmentação de Imagens 3D com Crescimento de Regiões
Defesa do meu Mestrado: Segmentação de Imagens 3D com Crescimento de RegiõesTiago Antônio da Silva
 
Curso CSS 3 - Aula Introdutória com conceitos básicos
Curso CSS 3 - Aula Introdutória com conceitos básicosCurso CSS 3 - Aula Introdutória com conceitos básicos
Curso CSS 3 - Aula Introdutória com conceitos básicosTiago Antônio da Silva
 
Curso JavaScript - Aula de Introdução como Programar
Curso JavaScript - Aula de Introdução como ProgramarCurso JavaScript - Aula de Introdução como Programar
Curso JavaScript - Aula de Introdução como ProgramarTiago Antônio da Silva
 
Aula C#: Acesso ao MySQL usando AppConfig
Aula C#: Acesso ao MySQL usando AppConfigAula C#: Acesso ao MySQL usando AppConfig
Aula C#: Acesso ao MySQL usando AppConfigTiago Antônio da Silva
 
Aula C#: Abastecendo Combobox com Dados do MySQL
Aula C#: Abastecendo Combobox com Dados do MySQLAula C#: Abastecendo Combobox com Dados do MySQL
Aula C#: Abastecendo Combobox com Dados do MySQLTiago Antônio da Silva
 
Aula C#: Listando Registros do MySQL no ListView
Aula C#: Listando Registros do MySQL no ListViewAula C#: Listando Registros do MySQL no ListView
Aula C#: Listando Registros do MySQL no ListViewTiago Antônio da Silva
 

More from Tiago Antônio da Silva (20)

SIF - Sistemas de Informacao e Regressao Linear
SIF - Sistemas de Informacao e Regressao LinearSIF - Sistemas de Informacao e Regressao Linear
SIF - Sistemas de Informacao e Regressao Linear
 
Manual de Sovrevivência do Aluno
Manual de Sovrevivência do AlunoManual de Sovrevivência do Aluno
Manual de Sovrevivência do Aluno
 
Git e GitHub: Versionamento de Código Fácil
Git e GitHub: Versionamento de Código FácilGit e GitHub: Versionamento de Código Fácil
Git e GitHub: Versionamento de Código Fácil
 
Caminhos na Carreira Acadêmica: A visão de um tecnólogo que fez mestrado
Caminhos na Carreira Acadêmica: A visão de um tecnólogo que fez mestradoCaminhos na Carreira Acadêmica: A visão de um tecnólogo que fez mestrado
Caminhos na Carreira Acadêmica: A visão de um tecnólogo que fez mestrado
 
Análise e Projeto de Sistemas: Mockup de um Crud no Balsamiq
Análise e Projeto de Sistemas: Mockup de um Crud no BalsamiqAnálise e Projeto de Sistemas: Mockup de um Crud no Balsamiq
Análise e Projeto de Sistemas: Mockup de um Crud no Balsamiq
 
Redes - Camada de Enlace de Dados
Redes - Camada de Enlace de DadosRedes - Camada de Enlace de Dados
Redes - Camada de Enlace de Dados
 
Xamarin - Aula 2.1 - AppDolares - Criando a Primeira Interface
Xamarin - Aula 2.1 - AppDolares - Criando a Primeira InterfaceXamarin - Aula 2.1 - AppDolares - Criando a Primeira Interface
Xamarin - Aula 2.1 - AppDolares - Criando a Primeira Interface
 
Xamarin - Aula 2 - Criando o Primeiro Projeto com Xamarin Forms
Xamarin - Aula 2 - Criando o Primeiro Projeto com Xamarin FormsXamarin - Aula 2 - Criando o Primeiro Projeto com Xamarin Forms
Xamarin - Aula 2 - Criando o Primeiro Projeto com Xamarin Forms
 
O que são Redes de Computadores
O que são Redes de ComputadoresO que são Redes de Computadores
O que são Redes de Computadores
 
Redes - Camada Física e Meios de Transmissão
Redes - Camada Física e Meios de TransmissãoRedes - Camada Física e Meios de Transmissão
Redes - Camada Física e Meios de Transmissão
 
Defesa do meu Mestrado: Segmentação de Imagens 3D com Crescimento de Regiões
Defesa do meu Mestrado: Segmentação de Imagens 3D com Crescimento de RegiõesDefesa do meu Mestrado: Segmentação de Imagens 3D com Crescimento de Regiões
Defesa do meu Mestrado: Segmentação de Imagens 3D com Crescimento de Regiões
 
Folhas de Estilo XSL
Folhas de Estilo XSLFolhas de Estilo XSL
Folhas de Estilo XSL
 
Divisão de Imagens 3D com CloudCompare
Divisão de Imagens 3D com CloudCompareDivisão de Imagens 3D com CloudCompare
Divisão de Imagens 3D com CloudCompare
 
Curso CSS 3 - Aula Introdutória com conceitos básicos
Curso CSS 3 - Aula Introdutória com conceitos básicosCurso CSS 3 - Aula Introdutória com conceitos básicos
Curso CSS 3 - Aula Introdutória com conceitos básicos
 
Curso JavaScript - Aula de Introdução como Programar
Curso JavaScript - Aula de Introdução como ProgramarCurso JavaScript - Aula de Introdução como Programar
Curso JavaScript - Aula de Introdução como Programar
 
Curso HTML 5 - Construindo um Layout
Curso HTML 5 - Construindo um LayoutCurso HTML 5 - Construindo um Layout
Curso HTML 5 - Construindo um Layout
 
Curso HTML 5 - Aula Inicial
Curso HTML 5 - Aula InicialCurso HTML 5 - Aula Inicial
Curso HTML 5 - Aula Inicial
 
Aula C#: Acesso ao MySQL usando AppConfig
Aula C#: Acesso ao MySQL usando AppConfigAula C#: Acesso ao MySQL usando AppConfig
Aula C#: Acesso ao MySQL usando AppConfig
 
Aula C#: Abastecendo Combobox com Dados do MySQL
Aula C#: Abastecendo Combobox com Dados do MySQLAula C#: Abastecendo Combobox com Dados do MySQL
Aula C#: Abastecendo Combobox com Dados do MySQL
 
Aula C#: Listando Registros do MySQL no ListView
Aula C#: Listando Registros do MySQL no ListViewAula C#: Listando Registros do MySQL no ListView
Aula C#: Listando Registros do MySQL no ListView
 

Curso JavaScript - Aula sobre DOM e Ajax

  • 1.
  • 2. • Estudar e compreender os conceitos e inter- relacionar as tecnologias: – DOM – JavaScript e CSS – Ajax – JSON
  • 3. Modificando o HTML 5 Dinamicamente
  • 4. • Document Object Model: – Desenvolvida pela W3C nos anos 90. – Especificação para manipular documentos: HTML e XML. • Acessar e criar novos elementos dentro de documentos. – Independente de linguagem: • Qualquer linguagem pode implementar a API DOM. • Conjunto de métodos e propriedades.
  • 5.
  • 6.
  • 7. • Pode-se manipular o HTML: – JavaScript com DOM: – Métodos e Propriedades: <header id=“cabeca”> <img scr=“logo.jpg” /> <p>Site da Empresa... </header> var x = document.getElementById(“cabeca”); x.getElementsByTagName(“img”);
  • 8. • Pode-se capturar eventos que acontecem no documento com o DOM: document.getElementById(“cabeca”).onclick = function() { alert(‘Você clicou em mim!’); }
  • 10. • Usa-se em conjunto com o DOM: – Modificação da propriedade style do elemento. – Alteração das propriedades CSS via JavaScript var x = document.getElementById(“cabeca”); x.style.background = ‘#CCC’; x.style.color = ‘#000’; }
  • 12. • Objeto do navegador: – XmlHTTPResquest • Permite carregar conteúdos de forma assíncrona: – Sem reload do documento. – Com o conteúdo carregado, usa-se o DOM para manipular o documento. – As resposta do servidor podem ser em HTML, XML, JSON ou String Simples.
  • 13. function abreAjax() { var obj_xml_http_resquest; try { obj_xml_http_resques = new XMLHttpRequest(); } catch(ee) { try { obj_xml_http_resques = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { obj_xml_http_resques = new ActiveXObject("Microsoft.XMLHTTP"); } catch(E) { obj_xml_http_resques = false; } } } return obj_xml_http_resques; }
  • 14. var ajax_obj = abreAjax(); ajax_obj.open('POST', 'categoria.php?ajax=true&cmd=cadastrar', true); ajax_obj.setRequestHeader('Content-Type', 'application/x-www-form- urlencoded'); ajax_obj.onreadystatechange = function () { if(ajax_obj.readyState == 1) { // Carregando solicitação } if(ajax_obj.readyState == 4) { if(ajax_obj.status == 200) { // Solicitação concluída } } }; ajax_obj.send(dataPost);
  • 16. • JavaScript Object Notation: – Desenvolvida por Douglas Crockford (1999). – Não é uma tecnologia nova: RFC: 4687. – É uma Estrutura de Dados em JavaScript: • Especificamente: Notação de Objetos. – Estes objetos podem ser armazenados em arquivos: • Extensão: .json • Mime-Type: application/json
  • 17. • Utilização Prática do JSON: – WebServices, por exemplo: Google e Yahoo • Seu uso não necessita do interpretador JavaScript instalado: – Linguagens como, por exemplo, PHP e Java tem seus interpretadores JSON. • Muito utilizado em detrimento do XML, mas as duas tecnologias podem ser utilizadas juntas.
  • 18. • A sintaxe do JSON é simples: par:valor • Pode-se validar a sintaxe em: – http://jsonlint.com • Onde par é uma propriedade do objeto, que seu valor pode ser: – String – Number – Object { // objeto vazio em Js } – Array [‘João’, ‘Maria’, ‘Pedro’] – Boleana (true ou false) – Null
  • 19. { “aluno" : [ { "nome": "João", "notas": [ 8, 9, 7 ] }, { "nome": "Maria", "notas": [ 8, 10, 7 ] }, { "nome": "Pedro", "notas": [ 10, 10, 9 ] } ] } <?xml version='1.0' encoding='utf-8'?> <aluno nome=“João”> <provas> <prova nota=“8” /> <prova nota=“9” /> <prova nota=“7” /> </provas> </aluno>
  • 20. • Trabalhando com JSON em JavaScript: var dados_alunos = eval(json_alunos); alert(dados_alunos.aluno[0].nome); // Exibe “João” alert(dados_alunos.aluno[0].notas[0]); // Exite “8” var json_alunos = { “aluno" : [ { "nome": "João", "notas": [ 8, 9, 7 ] }, { "nome": "Maria", "notas": [ 8, 10, 7 ] }, { "nome": "Pedro", "notas": [ 10, 10, 9 ] } ] };