O poder além das tags
Esta palestra não tem 130 slides!
Esta palestra tem MUITO código.
O poder além das tags
1.
2.
<!DOCTYPE html>
<html lang="pt-br">
...resto do documento omitido
</html>
<section>
/* Utilizado para representar uma seção generica
de um documento */
<nav>
/* Utilizado para representar elementos de navegação,
geralmente links (menu) */
<header>
/* Utilizado para estruturar cabeçalhos da página */
<main>
/* Define o conteúdo principal dentro do <body> em sua
página */
<aside>
/* Utilizado para referenciar conteúdos que não estejam
atrelados ao conteúdo principal da página. */
<article>
/* Utilizado para tornar mais indepente alguma
região do documento */
<footer>
/* Utilizado para representar a seção de rodapé */
<canvas>
/* Utilizado para desenhar gráficos ou animações 2D (JS) */
<audio>
/* Carregar conteúdos de áudio */
<video>
/* Carregar conteúdos de vídeo */
/* Novos tipos de campos*/
<input type="color"/> // Colorpicker
<input type="date" /> // Calendar
<input type="search" /> // Search
<input type="email" /> // E-mail
/* Validação de Campos */
<input type="text" name="descricao"
id="descricao" required="true" />
Application Programming Interface, é um conjunto de funcionalidades e padrões de programação que permite o acesso as funcionalidades de alguma aplicação. São bastante utilizadas quando se quer oferecer o seu software como um serviço, ou como consumo deste serviço para a criação do seu próprio software.
3.
Permite o armazenamento de informações, através de chave/valor, dentro do browser, de uma forma mais eficiente que os cookies.
/* Salvando os Dados */
var names = ["Yan", "Nariga", "Narigomon"];
localStorage.setItem('names', names);
/* Buscando os Dados */
localStorage.getItem('names');
/* Retirando do Web Storage */
localStorage.clear();
Permite obter os dados da localização do usuário em sua página. Só é possível mediante aprovação do usuário.
/* Utilizamos o objeto geolocation para ter
acesso as informações.
A função getCurrentPosition inicia uma requisição assíncrona, que ao
ser executada, retorna um objeto do tipo Geoposition */
navigator.geolocation.getCurrentPosition(function(position) {
console.debug(position.coords.latitude,
position.coords.longitude);
});
Utilização de um sensor que capta a intensidade da luz em um ambiente
// Disponivel apenas para Firefox em Mac OSX
window.addEventListener("devicelight", function (event) {
var intensity = event.value;
console.log(intensity);
});
Fornecem informações sobre a rede, situação da conexação e da banda de rede.
console.log(navigator.onLine ? 'true' : 'false');
Permite acessar a API de Vibration do device.
/* Utilizamos o objeto Vibrate para fazer as Vibrações */
/* Vibração Única */
navigator.vibrate(200);
/* Sequência de vibrações, com intervalos
de tempo */
navigator.vibrate([100, 200, 200, 200, 500]);
Permite configurar e exibir notificações no navegador e na área de trabalho do usuário .
/* Para emitir notificações, usamos o objeto Notification*/
Notification.requestPermission(function (permission) {
/* Após autorização do usuario, podemos emitir a
notificação */
if (permission === "granted") {
var notification = new Notification("Olá Pessoal");
}
});
Permite checar se a página está visível ou não, através das abas
function checkVisibility() {
if (document.hidden) {
console.log('Tab is hidden');
} else {
console.log('Tab is focused, lets rock');
}
}
/* Atribuo uma função quando acontecer o
evento visibilitychange */
document.addEventListener("visibilitychange", checkVisibility,
false);
Permite o acesso as informaçõs de bateria do dispositivo,expectativa de tempo de carregamento ou descarga da bateria.
/* Atraves do metodo getBattery, uma promise é executada,
retornando os dados do estado da bateria */
navigator.getBattery().then(function(battery) {
updateChargeInfo();
battery.addEventListener('chargingchange', function(){
updateChargeInfo();
});
function updateChargeInfo(){
console.log("Battery charging? "
+ (battery.charging ? "Yes" : "No"));
}
});
Possibilita acesso as coordenadas de orientação física de um dispositivo, acelerômetro e giroscópio
function getOrientation(event) {
var absolute = event.absolute;
var alpha = event.alpha;
var beta = event.beta;
var gamma = event.gamma;
}
window.addEventListener('deviceorientation',
getOrientation);
Permitem que seja possível abrir um canal de comunicação, entre o navegador do usuário e um servidor. Podemos enviar mensagens para o servidor e receber respostas orientadas a eventos, sem a necessidade de realizar uma requisição ao servidor.
Permite realizar diversas operações e manuseios de arquivos de audio. Síntese e processamento de audios em páginas web. Podemos criar funções e manipular efeitos de audio.
4.
http://caniuse.com/
/yanmagale
/yaanmagale
/yaanmagalhaes