SlideShare uma empresa Scribd logo
1 de 48
HTML
& suas APIs
Luciano Borges
http://www.slideshare.net/lusabo
lucianosantosborges@gmail.com
Culpados
WHATWG
Uma nova visão
Compatibilidade
Utilidade
Interoperabilidade Acesso
Universal
Compatibilidade
Não se preocupe, o HTML5 não é
uma revolução perturbadora!
Um dos seus princípios básicos é manter
tudo funcionando.
Muito esforço tem sido colocado na
pesquisa de comportamentos comuns.
<div id='header'></div> → <header></header>
Utilidade
Separação da Apresentação e do Conteúdo
id=”erbase” id=erbase ID=”erbase”
Prioridade de Constituintes
usuário > autores > navegadores > especificação
Seguro pelo Projeto
Introduz um novo modelo de segurança que permite fazer
coisas antes impossíveis.
Interoperabilidade
Especificação ficou maior e mais precisa.
Comportamentos bem definidos para obter
verdadeira interoperabilidade.
Acesso Universal
Acessibilidade
WAI-ARIA (http://www.w3.org/TR/wai-aria)
Suporte a todas linguagens do mundo
Ex: <ruby> tipografia ásia oriental
Independência de Mídia
O que há de novo em HTML5?
DOCTYPE
HTML 4.01
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
XHTML 1.0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
HTML 5
<!DOCTYPE html>
● Não é uma tag HTML e sim uma instrução para o browser sobre
qual versão do HTML a página está escrita.
● Deve ser a primeira linha de código do documento antes da tag
HTML.
O que há de novo em HTML5?
META
HTML 4.01
<meta http-equiv="content-type" content="text/html;
charset=UTF-8">
HTML5
<meta charset=”UTF-8">
● Metatag responsável por chavear qual tabela de caracteres a
página está utilizando.
HTML
Semântica
● O HTML 5 define uma marcação semântica para descrever o
conteúdo de um elemento;
● Usar marcação semântica simplifica o projeto das suas páginas
HTML;
● Os novos elementos semânticos podem receber estilos CSS,
favorecendo a separação do conteúdo com a apresentação.
Elementos Semânticos
HTML4 HTML5
HTML
Conectividade
● Permite a comunicação segura entre diversas origens por
meio de iframes, abas e janelas;
● Define a API postMessage como uma forma padrão de enviar
mensagens;
Cross Document Messaging
XMLHttpRequest Level 2 (Cliente → Servidor)
● XMLHttpRequest é a API que tornou o AJAX possível;
● Melhorias:
● XMLHttpRequest de Múltiplas Origens
● Eventos de progresso
● Canal de comunicação full-duplex, que opera através de um
único socket pela web;
WebSocket (Servidor → Cliente)
WebRTC (Cliente ↔ Cliente)
● API que permite aos navegadores executar aplicações de
chamada telefônica, video chat e compartilhamento P2P sem
a necessidade de plugins;
Cross Document Messaging
postMessage
● Fornece passagem assíncrona de mensagens entre contextos
JavaScript;
● Pode ser usada para a comunicação entre documentos com a
mesma origem, mas é especialmente útil quando a
comunicação ocorre entre documentos de origens
diferentes;
HTML
Acessoadispositivos
● A especificação define um mecanismo baseado em eventos, a API
do JavaScript, e uma marcação adicional para declarar que
qualquer tipo de elemento possa ser arrastado em uma página.
Drag and Drop
drag medrag me
drag me
FullScreen
● Fornece uma maneira programática para solicitar visualização
fullscreen do usuário, e sair do fullscreen quando desejado.
● API que permite que um único elemento possa ser visto em tela
cheia.
● API é destinado a imagens, vídeos e jogos rodando dentro de um
contêiner.
HTML
Multimídia
Possibilidade de usar áudio e vídeo sem plugins.
<video src=”video.ogg”></video>
Possibilidade de usar áudio e vídeo sem plugins.
<audio control>
<source src=”music.ogg”
type=”audio/ogg;codeccs=vorbis”>
<source src=”music.mp3” type=”audio/mpeg”>
</audio>
HTML
Offline&Storage
WebStorage
● Devs podem armazenar dados no lado do cliente;
● Session Storage
● Os dados ficam disponíveis apenas para a janela que criou o dado
até que seja fechada.
● Local Storage
● Não depende da sessão.
● Os dados ficam disponíveis para qualquer janela.
● Permanece disponível até que seja explicitamente deletada pelo
programador do site ou pelo o usuário.
WebStorage
Web Offline
● Os usuários podem navegar por todo o site quando estão
off-line;
● Os recursos armazenados em cache são locais e,
portanto, são carregados mais rapidamente;
● O navegador fará download do servidor apenas dos
recursos que forem alterados.
<html manifest=”manifesto.appcache”>
</html>
CACHE MANIFEST
index.html
stylesheet.css
images/logo.png
scripts/main.js
HTML
Performance
Web Workes
● Capacidade para processamento em background para
aplicações web;
● São executados em threads separadas;
● Permite executar tarefas como disparar scripts de longa
duração para executar tarefas muito dispendiosas, mas
sem bloquear a interface de usuário ou outros scripts
para manipular interações com o usuário;
● Possibilidade de tirar proveito de CPUs com múltiplos
núcleos.
HTML
EstilosVisuais
CSS Object Model
● Conjunto de APIs que permitem manipular CSS a partir de
JavaScript;
● Permite ler e modificar o estilo CSS de forma dinâmica.
API
Selectors
getElementById()
getElementByName()
getElementByTagName()
querySelector()
HTML4 HTML5
Retorna o primeiro elemento da página que
satisfaça à(s) regra(s).
querySelector(“input.error”)
querySelectorAll()
querySelector(“#results td”)
Retorna todos os elementos que satisfaçam
à regra ou regras especificadas.
HTML
Gráficos&3D
Canvas
● Elemento HTML que pode ser usado para desenhar
gráficos usando scripts (normalmente JavaScript).
SVG
● SVG is a language for describing two-dimensional graphics
in XML.
●
A performance é muito
superior ao SVG na maioria
dos casos;
●
É fácil desenhar via
Javascript. Em SVG, é
preciso fazer seu script
escrever XML para você.
Com Canvas você só
manda desenhar, e pronto.
●
O conteúdo é acessível a
leitores de tela;
●
O gráfico é escalável, não
perde resolução ou serrilha
ao redimensionar;
●
O conteúdo é acessível via
DOM.
Canvas x SVG
WebGL
● API em JavaScript, disponível a partir do novo elemento
canvas da HTML5, que oferece suporte para renderização
de gráficos 2D e gráficos 3D.
Fim?
Fim?
Geolocation
API que define uma interface de alto nível
para as informações de localização (latitude
e longitude) associado apenas com o
dispositivo que hospeda a implementação.
Geolocation
Geolocalização IP
É o método usado pela maioria dos navegadores web em
computadores. Através de consultas whois e serviços de
localização de IP, vai determinar a cidade ou região em que você
está.
Triangulação GPRS
Dispositivos conectados a uma rede de celulares e sem um GPS,
ou com o GPS desligado, podem determinar sua posição pela
triangulação das antenas GPRS próximas. É bem mais preciso que
o método baseado em IP, vai mostrar em que parte do bairro você
está.
GPS
É o método mais preciso. Em condições ideais, a margem de erro
é de apenas 5 metros.
Forms
O HTML5 trouxe novos campos para formulários e novos
comportamentos para enriquecer a experiência disponível para os
formulários.
<input type=”email”>
<input type=”tel”>
<input type=”number” min=”1” max=”5”>
<input type=”url”>
Agregam a semântica do seu HTML para definir o tipo de informação
que o formulário precisa, apesar de não causar mudanças drásticas
ao visual dos seus elementos.
Forms
Forms
<input type="color">
<input type="range" min="1" max="10">
<input type="date">
<input type="time">
<input type="month">
<input type="week">
<input type="search">
Forms
Nome: <input type="text" placeholder="Digite seu nome"
required>
Nome: <input type="text" pattern="[A-Za-z0-9_]{1,15}">
Forms
Fotos: <input type="file" multiple>
Agora sim,
tchau!

Mais conteúdo relacionado

Mais procurados

Módulo: 5 – Desenvolvimento de Páginas Web Dinâmicas: Javascript
Módulo: 5 – Desenvolvimento de Páginas Web Dinâmicas: JavascriptMódulo: 5 – Desenvolvimento de Páginas Web Dinâmicas: Javascript
Módulo: 5 – Desenvolvimento de Páginas Web Dinâmicas: JavascriptAgrupamento de Escolas da Batalha
 
Web Tools Pt B R
Web Tools Pt  B RWeb Tools Pt  B R
Web Tools Pt B Rguestb9d145
 
Configurando aplicações em ambiente RedHat OpenShift através do Eclipse
Configurando aplicações em ambiente RedHat OpenShift através do EclipseConfigurando aplicações em ambiente RedHat OpenShift através do Eclipse
Configurando aplicações em ambiente RedHat OpenShift através do EclipseAlberlan Barros
 
Mantendo os dados do seu app web offline com PouchDB
Mantendo os dados do seu app web offline com PouchDBMantendo os dados do seu app web offline com PouchDB
Mantendo os dados do seu app web offline com PouchDBSidney Roberto
 
Quasar Framework - Uma visão Geral
Quasar Framework - Uma visão GeralQuasar Framework - Uma visão Geral
Quasar Framework - Uma visão GeralPatrick Monteiro
 
Introdução a Microservices com Node.JS
Introdução  a Microservices com Node.JSIntrodução  a Microservices com Node.JS
Introdução a Microservices com Node.JSEduardo Nunes Pereira
 
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017Renato Groff
 
Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021Erik Cruz
 
Unit Test JavaScript
Unit Test JavaScriptUnit Test JavaScript
Unit Test JavaScriptDan Vitoriano
 
9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometemFernando Henriques
 

Mais procurados (14)

Módulo: 5 – Desenvolvimento de Páginas Web Dinâmicas: Javascript
Módulo: 5 – Desenvolvimento de Páginas Web Dinâmicas: JavascriptMódulo: 5 – Desenvolvimento de Páginas Web Dinâmicas: Javascript
Módulo: 5 – Desenvolvimento de Páginas Web Dinâmicas: Javascript
 
Web Tools Pt B R
Web Tools Pt  B RWeb Tools Pt  B R
Web Tools Pt B R
 
Configurando aplicações em ambiente RedHat OpenShift através do Eclipse
Configurando aplicações em ambiente RedHat OpenShift através do EclipseConfigurando aplicações em ambiente RedHat OpenShift através do Eclipse
Configurando aplicações em ambiente RedHat OpenShift através do Eclipse
 
Mantendo os dados do seu app web offline com PouchDB
Mantendo os dados do seu app web offline com PouchDBMantendo os dados do seu app web offline com PouchDB
Mantendo os dados do seu app web offline com PouchDB
 
Curso de ReactJS
Curso de ReactJSCurso de ReactJS
Curso de ReactJS
 
Quasar Framework - Uma visão Geral
Quasar Framework - Uma visão GeralQuasar Framework - Uma visão Geral
Quasar Framework - Uma visão Geral
 
Introdução a Microservices com Node.JS
Introdução  a Microservices com Node.JSIntrodução  a Microservices com Node.JS
Introdução a Microservices com Node.JS
 
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
 
Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021
 
Unit Test JavaScript
Unit Test JavaScriptUnit Test JavaScript
Unit Test JavaScript
 
9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem
 
Dojo react
Dojo reactDojo react
Dojo react
 
Introdução ao Nodejs
Introdução ao NodejsIntrodução ao Nodejs
Introdução ao Nodejs
 
Framework7
Framework7Framework7
Framework7
 

Destaque

09 Java Script - As formas de usar
09  Java Script  - As formas de usar09  Java Script  - As formas de usar
09 Java Script - As formas de usarCentro Paula Souza
 
Workshop: WebSockets com HTML 5 & PHP - Gustavo Ciello
Workshop: WebSockets com HTML 5 & PHP - Gustavo CielloWorkshop: WebSockets com HTML 5 & PHP - Gustavo Ciello
Workshop: WebSockets com HTML 5 & PHP - Gustavo CielloTchelinux
 
Curso de html - Introdução ao HTML
Curso de html -  Introdução ao HTMLCurso de html -  Introdução ao HTML
Curso de html - Introdução ao HTMLTales Augusto
 
JavaScript: Introdução e Operadores (aula 1)
JavaScript: Introdução e Operadores (aula 1)JavaScript: Introdução e Operadores (aula 1)
JavaScript: Introdução e Operadores (aula 1)Gustavo Zimmermann
 

Destaque (7)

Revisão html e java script
Revisão html e java scriptRevisão html e java script
Revisão html e java script
 
09 Java Script - As formas de usar
09  Java Script  - As formas de usar09  Java Script  - As formas de usar
09 Java Script - As formas de usar
 
Workshop: WebSockets com HTML 5 & PHP - Gustavo Ciello
Workshop: WebSockets com HTML 5 & PHP - Gustavo CielloWorkshop: WebSockets com HTML 5 & PHP - Gustavo Ciello
Workshop: WebSockets com HTML 5 & PHP - Gustavo Ciello
 
Curso de html - Introdução ao HTML
Curso de html -  Introdução ao HTMLCurso de html -  Introdução ao HTML
Curso de html - Introdução ao HTML
 
JavaScript: Introdução e Operadores (aula 1)
JavaScript: Introdução e Operadores (aula 1)JavaScript: Introdução e Operadores (aula 1)
JavaScript: Introdução e Operadores (aula 1)
 
Curso de Desenvolvimento Web - Módulo 03 - JavaScript
Curso de Desenvolvimento Web - Módulo 03 - JavaScriptCurso de Desenvolvimento Web - Módulo 03 - JavaScript
Curso de Desenvolvimento Web - Módulo 03 - JavaScript
 
Aula gerenciamento de arquivos e pastas
Aula   gerenciamento de arquivos e pastasAula   gerenciamento de arquivos e pastas
Aula gerenciamento de arquivos e pastas
 

Semelhante a HTML5 e suas APIs - Uma introdução completa

Desenvolvimento web com software livre
Desenvolvimento web com software livreDesenvolvimento web com software livre
Desenvolvimento web com software livreRuan Carvalho
 
Desenvolvimento web com Software Livre
Desenvolvimento web com Software LivreDesenvolvimento web com Software Livre
Desenvolvimento web com Software LivreRuan Carvalho
 
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxMarceloRosenbrock1
 
Seminário de Desenvolvimento Mobile - Etec Cafelândia
Seminário de Desenvolvimento Mobile - Etec CafelândiaSeminário de Desenvolvimento Mobile - Etec Cafelândia
Seminário de Desenvolvimento Mobile - Etec CafelândiaDiego Cavalca
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento webRodrigo Rodrigues
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Valmir Justo
 
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3André Luiz Forchesatto
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKRyan Padilha
 
Escalabilidade via Software no ExpressoV3
Escalabilidade via Software no ExpressoV3Escalabilidade via Software no ExpressoV3
Escalabilidade via Software no ExpressoV3Flávio Lisboa
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemRodrigo Valerio
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sitesthiagolima
 
CóPia De Minicurso Smsi
CóPia De Minicurso SmsiCóPia De Minicurso Smsi
CóPia De Minicurso Smsitaniamaciel
 
Transformando a ti com cloud computing e virtualização
Transformando a ti com cloud computing e virtualizaçãoTransformando a ti com cloud computing e virtualização
Transformando a ti com cloud computing e virtualizaçãoDarlan Segalin
 
Projeto Web - Aula 1 - Fundamentos do Dev WEB.pptx
Projeto Web - Aula 1 - Fundamentos do Dev WEB.pptxProjeto Web - Aula 1 - Fundamentos do Dev WEB.pptx
Projeto Web - Aula 1 - Fundamentos do Dev WEB.pptxLuiz Antonio
 

Semelhante a HTML5 e suas APIs - Uma introdução completa (20)

HTML5
HTML5HTML5
HTML5
 
Desenvolvimento web com software livre
Desenvolvimento web com software livreDesenvolvimento web com software livre
Desenvolvimento web com software livre
 
Desenvolvimento web com Software Livre
Desenvolvimento web com Software LivreDesenvolvimento web com Software Livre
Desenvolvimento web com Software Livre
 
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptx
 
Seminário de Desenvolvimento Mobile - Etec Cafelândia
Seminário de Desenvolvimento Mobile - Etec CafelândiaSeminário de Desenvolvimento Mobile - Etec Cafelândia
Seminário de Desenvolvimento Mobile - Etec Cafelândia
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.
 
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDK
 
Conceitos de Ajax
Conceitos de AjaxConceitos de Ajax
Conceitos de Ajax
 
XHTML e CSS
XHTML e CSSXHTML e CSS
XHTML e CSS
 
Escalabilidade via Software no ExpressoV3
Escalabilidade via Software no ExpressoV3Escalabilidade via Software no ExpressoV3
Escalabilidade via Software no ExpressoV3
 
A Linguagem Php
A Linguagem PhpA Linguagem Php
A Linguagem Php
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvem
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sites
 
Minicurso Smsi
Minicurso SmsiMinicurso Smsi
Minicurso Smsi
 
CóPia De Minicurso Smsi
CóPia De Minicurso SmsiCóPia De Minicurso Smsi
CóPia De Minicurso Smsi
 
Jquery Mobile
Jquery MobileJquery Mobile
Jquery Mobile
 
Transformando a ti com cloud computing e virtualização
Transformando a ti com cloud computing e virtualizaçãoTransformando a ti com cloud computing e virtualização
Transformando a ti com cloud computing e virtualização
 
Projeto Web - Aula 1 - Fundamentos do Dev WEB.pptx
Projeto Web - Aula 1 - Fundamentos do Dev WEB.pptxProjeto Web - Aula 1 - Fundamentos do Dev WEB.pptx
Projeto Web - Aula 1 - Fundamentos do Dev WEB.pptx
 

Mais de Luciano Borges

Mais de Luciano Borges (7)

ShareCar
ShareCarShareCar
ShareCar
 
IV Workshop Demoiselle
IV Workshop DemoiselleIV Workshop Demoiselle
IV Workshop Demoiselle
 
JQuery Alagoinhas Dev Day - UNEB
JQuery Alagoinhas Dev Day - UNEBJQuery Alagoinhas Dev Day - UNEB
JQuery Alagoinhas Dev Day - UNEB
 
JQuery
JQuery JQuery
JQuery
 
Titanium
TitaniumTitanium
Titanium
 
Apresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBAApresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBA
 
Google Maps API V3
Google Maps API V3Google Maps API V3
Google Maps API V3
 

HTML5 e suas APIs - Uma introdução completa

  • 1. HTML & suas APIs Luciano Borges http://www.slideshare.net/lusabo lucianosantosborges@gmail.com
  • 4. Compatibilidade Não se preocupe, o HTML5 não é uma revolução perturbadora! Um dos seus princípios básicos é manter tudo funcionando. Muito esforço tem sido colocado na pesquisa de comportamentos comuns. <div id='header'></div> → <header></header>
  • 5. Utilidade Separação da Apresentação e do Conteúdo id=”erbase” id=erbase ID=”erbase” Prioridade de Constituintes usuário > autores > navegadores > especificação Seguro pelo Projeto Introduz um novo modelo de segurança que permite fazer coisas antes impossíveis.
  • 6. Interoperabilidade Especificação ficou maior e mais precisa. Comportamentos bem definidos para obter verdadeira interoperabilidade.
  • 7. Acesso Universal Acessibilidade WAI-ARIA (http://www.w3.org/TR/wai-aria) Suporte a todas linguagens do mundo Ex: <ruby> tipografia ásia oriental Independência de Mídia
  • 8. O que há de novo em HTML5? DOCTYPE HTML 4.01 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> XHTML 1.0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> HTML 5 <!DOCTYPE html> ● Não é uma tag HTML e sim uma instrução para o browser sobre qual versão do HTML a página está escrita. ● Deve ser a primeira linha de código do documento antes da tag HTML.
  • 9. O que há de novo em HTML5? META HTML 4.01 <meta http-equiv="content-type" content="text/html; charset=UTF-8"> HTML5 <meta charset=”UTF-8"> ● Metatag responsável por chavear qual tabela de caracteres a página está utilizando.
  • 11. ● O HTML 5 define uma marcação semântica para descrever o conteúdo de um elemento; ● Usar marcação semântica simplifica o projeto das suas páginas HTML; ● Os novos elementos semânticos podem receber estilos CSS, favorecendo a separação do conteúdo com a apresentação. Elementos Semânticos
  • 14. ● Permite a comunicação segura entre diversas origens por meio de iframes, abas e janelas; ● Define a API postMessage como uma forma padrão de enviar mensagens; Cross Document Messaging XMLHttpRequest Level 2 (Cliente → Servidor) ● XMLHttpRequest é a API que tornou o AJAX possível; ● Melhorias: ● XMLHttpRequest de Múltiplas Origens ● Eventos de progresso
  • 15. ● Canal de comunicação full-duplex, que opera através de um único socket pela web; WebSocket (Servidor → Cliente) WebRTC (Cliente ↔ Cliente) ● API que permite aos navegadores executar aplicações de chamada telefônica, video chat e compartilhamento P2P sem a necessidade de plugins;
  • 16. Cross Document Messaging postMessage ● Fornece passagem assíncrona de mensagens entre contextos JavaScript; ● Pode ser usada para a comunicação entre documentos com a mesma origem, mas é especialmente útil quando a comunicação ocorre entre documentos de origens diferentes;
  • 18. ● A especificação define um mecanismo baseado em eventos, a API do JavaScript, e uma marcação adicional para declarar que qualquer tipo de elemento possa ser arrastado em uma página. Drag and Drop drag medrag me drag me
  • 19. FullScreen ● Fornece uma maneira programática para solicitar visualização fullscreen do usuário, e sair do fullscreen quando desejado. ● API que permite que um único elemento possa ser visto em tela cheia. ● API é destinado a imagens, vídeos e jogos rodando dentro de um contêiner.
  • 21. Possibilidade de usar áudio e vídeo sem plugins. <video src=”video.ogg”></video>
  • 22. Possibilidade de usar áudio e vídeo sem plugins. <audio control> <source src=”music.ogg” type=”audio/ogg;codeccs=vorbis”> <source src=”music.mp3” type=”audio/mpeg”> </audio>
  • 24. WebStorage ● Devs podem armazenar dados no lado do cliente; ● Session Storage ● Os dados ficam disponíveis apenas para a janela que criou o dado até que seja fechada. ● Local Storage ● Não depende da sessão. ● Os dados ficam disponíveis para qualquer janela. ● Permanece disponível até que seja explicitamente deletada pelo programador do site ou pelo o usuário.
  • 26. Web Offline ● Os usuários podem navegar por todo o site quando estão off-line; ● Os recursos armazenados em cache são locais e, portanto, são carregados mais rapidamente; ● O navegador fará download do servidor apenas dos recursos que forem alterados. <html manifest=”manifesto.appcache”> </html> CACHE MANIFEST index.html stylesheet.css images/logo.png scripts/main.js
  • 28. Web Workes ● Capacidade para processamento em background para aplicações web; ● São executados em threads separadas; ● Permite executar tarefas como disparar scripts de longa duração para executar tarefas muito dispendiosas, mas sem bloquear a interface de usuário ou outros scripts para manipular interações com o usuário; ● Possibilidade de tirar proveito de CPUs com múltiplos núcleos.
  • 29.
  • 30.
  • 32. CSS Object Model ● Conjunto de APIs que permitem manipular CSS a partir de JavaScript; ● Permite ler e modificar o estilo CSS de forma dinâmica.
  • 33. API Selectors getElementById() getElementByName() getElementByTagName() querySelector() HTML4 HTML5 Retorna o primeiro elemento da página que satisfaça à(s) regra(s). querySelector(“input.error”) querySelectorAll() querySelector(“#results td”) Retorna todos os elementos que satisfaçam à regra ou regras especificadas.
  • 35. Canvas ● Elemento HTML que pode ser usado para desenhar gráficos usando scripts (normalmente JavaScript).
  • 36. SVG ● SVG is a language for describing two-dimensional graphics in XML.
  • 37. ● A performance é muito superior ao SVG na maioria dos casos; ● É fácil desenhar via Javascript. Em SVG, é preciso fazer seu script escrever XML para você. Com Canvas você só manda desenhar, e pronto. ● O conteúdo é acessível a leitores de tela; ● O gráfico é escalável, não perde resolução ou serrilha ao redimensionar; ● O conteúdo é acessível via DOM. Canvas x SVG
  • 38. WebGL ● API em JavaScript, disponível a partir do novo elemento canvas da HTML5, que oferece suporte para renderização de gráficos 2D e gráficos 3D.
  • 39. Fim?
  • 40. Fim?
  • 41. Geolocation API que define uma interface de alto nível para as informações de localização (latitude e longitude) associado apenas com o dispositivo que hospeda a implementação.
  • 42. Geolocation Geolocalização IP É o método usado pela maioria dos navegadores web em computadores. Através de consultas whois e serviços de localização de IP, vai determinar a cidade ou região em que você está. Triangulação GPRS Dispositivos conectados a uma rede de celulares e sem um GPS, ou com o GPS desligado, podem determinar sua posição pela triangulação das antenas GPRS próximas. É bem mais preciso que o método baseado em IP, vai mostrar em que parte do bairro você está. GPS É o método mais preciso. Em condições ideais, a margem de erro é de apenas 5 metros.
  • 43. Forms O HTML5 trouxe novos campos para formulários e novos comportamentos para enriquecer a experiência disponível para os formulários. <input type=”email”> <input type=”tel”> <input type=”number” min=”1” max=”5”> <input type=”url”> Agregam a semântica do seu HTML para definir o tipo de informação que o formulário precisa, apesar de não causar mudanças drásticas ao visual dos seus elementos.
  • 44. Forms
  • 45. Forms <input type="color"> <input type="range" min="1" max="10"> <input type="date"> <input type="time"> <input type="month"> <input type="week"> <input type="search">
  • 46. Forms Nome: <input type="text" placeholder="Digite seu nome" required> Nome: <input type="text" pattern="[A-Za-z0-9_]{1,15}">