SCE Aula 3 Arquitetura de software na Web atual: processamento de lado cliente. Prof: Dra. Renata Pontin de Mattos Fortes

Documentos relacionados
Aula 4 Arquitetura de software na Web atual: AJAX e Ajax. Prof: Dra. Renata Pontin de Mattos Fortes

Java: Linguagem de programação (OOP) JavaScipt: Linguagem de scripts (OOP)

JAVASCRIPT Laboratórios de Informática João Paulo Barraca, André Zúquete, Diogo Gomes

O que é o JavaScript?

Introdução à HTML Dinámico. O linguagem JavaScript.

Prof Evandro Manara Miletto. parte 2

Introdução ao Javascript

JavaScript (Elementos de Programação e Programação Básica)

Prof Evandro Manara Miletto. parte 1

Universidade Federal do Espírito Santo CCA UFES. Centro de Ciências Agrárias CCA UFES Departamento de Computação. JavaScript

JavaScript Introdução e Sintaxe

Desenvolvimento Web. Versão 2 Jan/2019. Professor Emiliano S. Monteiro

JavaNoroeste Grupo de Usuários Java do Noroeste Paulista. AJAX e WEB 2.0

Leonardo Zorzo Carbone. Orientador: Adilson Vahldick

Conteúdo Programático JavaScript Web Developer

Desenvolvimento de Sistemas para WEB Site:

Tecnologias para Web Design

INTRODUÇÃO AO JAVA SCRIPT

Introdução a Javascript

Construção de Sites 2. Prof. Christiano Lima Santos

Linguagem de Programação III - PHP

Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Felippe Scheidt IFPR Campus Foz do Iguaçu. Introdução ao Javascript #1

Introdução. Surge em 1995 (Brendan Eich, programador da Netscape) com o nome de Livescript

Fundação Educacional Encosta Inferior do Nordeste

INTRODUÇÃO AO DESENVOLVIMENTO FRONT-END COM HTML, CSS E JAVASCRIPT

JAVASCRIPT. Desenvolvimento Web I

Ranking das linguagens de programação mais utilizadas. TIOBE Index PyPL Index Redmonk IEEE Spectrum

CONTEÚDO PROGRAMÁTICO

WEBDESIGN. Professor: Paulo Marcos Trentin - Escola CDI de Videira

AJAX. Prof. Marcos Alexandruk

Conteúdo Programático JavaScript Web Developer

Sumário. Parte I JavaScript básica. 1 Introdução a JavaScript Estrutura léxica Tipos, valores e variáveis... 28

Abordagem introdutória; modos de inserção no html; declaração de variáveis e operadores.

Programação para Internet I

Desenvolvimento Web. JavaScript aula II variáveis (cont.) e diálogos. Professor: Bruno Gomes

Desenvolvimento Web. Introdução Geral. Prof. Vicente Paulo de Camargo

O que é o Javascript?

Introdução à linguagem JavaScript

Aula 22 Eventos. Desenvolvimento Web I Prof. Filipe Arantes Fernandes

Desenvolvimento para Internet. Professor Ariel da Silva Dias JAVASCRIPT Parte III

Minicurso de JavaScript PET Sistemas de Informação Terceiro Dia Anthony Tailer. Clécio Santos. Rhauani Fazul.

SIMULADOS & TUTORIAIS

PLANO DE ENSINO 2016/1

Construção de SitesAula5

Informática I. Aula 7. Aula 7-17/09/2007 1

PROGRAMAÇÃO PARA INTERNET. Fonte: Raul Paradeda

Introdução 1 PARTE I: A LINGUAGEM DA WEB 5

JavaScript (ou JScript)

Nesta disciplina aprenderemos. HTML CSS JavaScript Jquery PHP

OFICINA DA PESQUISA PROGRAMAÇÃO APLICADA À CIÊNCIA DA COMPUTAÇÃO

Primeiro contato com JavaScript

Aula 11 Introdução ao Java Script

Desenvolvimento Web. JavaScript aula IV Funções. Professor: Bruno E. G. Gomes

Guia para Criativos em HTML5 ABRIL

INTRODUÇÃO AO JQUERY PROF. ME. HÉLIO ESPERIDIÃO

INTRODUÇÃO. JavaScript PROF. ME. HÉLIO ESPERIDIÃO

Abordagem introdutória; modos de inserção no html; declaração de variáveis e operadores.

Informática I. Aula Aula 11-01/10/2007 1

Java Básico. Carga Horária: 32 horas. Pré-requisito: Lógica de Programação; JAVA. Conteúdo Programático

JavaScript: Validação de Formulários. Prof. Ivanilton Polato

Técnico em Informática. Web JavaScript. Profª Ana Paula Mandelli

Construção de Sites 2. Prof. Christiano Lima Santos

Evite ao máximo o uso de javascripts para animações / transições, dando sempre preferência ao recurso de transições do CSS.

Apostila - Desenvolvimento web com PHP

Guia para Criativos em HTML5 ABRIL

JavaScript. de Alto Desempenho. Nicholas C. Zakas. Novatec

Modelo para a representação de informações, utilizado por aplicações Web que trabalham com a tecnologia AJAX.

jquery Curso de Tecnologia em Análise e Desenvolvimento de Sistemas Desenvolvimento de Sistemas web

AJAX (Asynchronous Javascript And XML)

qwertyuiopasdfghjklzxcvbnmqwer tyuiopasdfghjklzxcvbnmqwertyuio pasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjk

Prof. Esp. Andrew Rodrigues 1

AULA 11 DESENVOLVIMENTO DE GAMES UTILIZANDO O HTML5

Linguagem de Programação III

Introdução a Web. Programação para a Internet. Prof. Vilson Heck Junior

PROGRAMAÇÃO PARA INTERNET RICA DHTML E O DOCUMENT OBJECT MODEL

PHP Instalação. Linguagens Server-side Professor Fábio Luís da Silva Santos XAMPP.

PROGRAMAÇÃO PARA INTERNET RICA RICH INTERNET APPLICATIONS

Programação para Internet

Introdução ao Javascript. Parte 2 Prof. Victor Hugo Lopes

Sumários de REDES de COMUNICAÇÃO

Desenvolvimento Web. JavaScript aula IV Acesso a documentos com Document Object Model (DOM) Professor: Bruno E. G. Gomes

Desenvolvimento de Aplicações para. Prof.: Bruno Rafael de Oliveira Rodrigues

PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE

Informática Parte 23 Prof. Márcio Hunecke

TECNOLOGIA WEB INTRODUÇÃO CONSTRUÇÃO DE PÁGINAS ESTÁTICAS HTML / XHTML

DESENVOLVIMENTO DE SISTEMAS WEB. Lista de Exercícios AV2-01. Luiz Leão

Java para WEB com Struts 2 e Hibernate

Análise de Programação

INTRODUÇÃO ÀS APLICAÇÕES PARA WEB

1) DADOS DA OBRA: Programando em Java 2 Teoria e Aplicações Rui Rossi dos Santos 2004 Axcel Books (

Informática Parte 14 Prof. Márcio Hunecke

Introdução ao Javascript

Programação para Internet I

Dreamweaver CC_15x21.indd 1 06/04/ :04:22

Transcrição:

SCE 0265 Aula 3 Arquitetura de software na Web atual: processamento de lado cliente Prof: Dra. Renata Pontin de Mattos Fortes Aluno PAE: Willian Massami Watanabe

Sumário da aula Aplicações Estáticas x Aplicações Dinâmicas Javascript Características da linguagem Núcleo da linguagem HTML Events e DHTML Por que Javascript?

Sumário da aula Aplicações Estáticas x Aplicações Dinâmicas Javascript Características da linguagem Núcleo da linguagem HTML Events e DHTML Por que Javascript?

Aplicações Estáticas x Aplicações Dinâmicas Aplicações Estáticas

Aplicações Estáticas x Aplicações Dinâmicas Revisando HTML

Aplicações Estáticas x Aplicações Dinâmicas Revisando HTML Formas de Interação Links Âncoras (exemplo: http://www.w3.org/tr/wcag10/) Inputs (exemplo: formulários na aula 2)

Aplicações Estáticas x Aplicações Dinâmicas Revisando HTML Link, Âncora ou Input Usuário interagindo com o Navegador Servidor Web

Aplicações Estáticas x Aplicações Dinâmicas Revisando HTML Link, Âncora ou Input Processa... Usuário interagindo com o Navegador Servidor Web

Aplicações Estáticas x Aplicações Dinâmicas Revisando HTML Link, Âncora ou Input Retorna nova página Usuário interagindo com o Navegador Servidor Web

Aplicações Estáticas x Aplicações Dinâmicas Revisando CSS Formas de Interação Exemplo menu: http://maujor.com/tutorial/ddownmenu/barebones.html

Aplicações Estáticas x Aplicações Dinâmicas Revisando CSS Formas de Interação Exemplo menu: http://maujor.com/tutorial/ddownmenu/barebones.html Implementado utilizando apenas CSS. Dica: Pseudo classes em CSS

Aplicações Estáticas x Aplicações Dinâmicas Revisando CSS Formas de Interação Simples e elegante Limitações no desenvolvimento de interações complexas

Aplicações Estáticas x Aplicações Dinâmicas Aplicações Estáticas = HTML + CSS

Aplicações Estáticas x Aplicações Dinâmicas Aplicações Estáticas Limitações nas interações com o usuário Espera do usuário por atualizações Sobrecarga no processamento do servidor (Servidor é responsável por todo o processamento)

Aplicações Estáticas x Aplicações Dinâmicas Aplicações Estáticas Link, Âncora ou Input Aguarda... Processa... Usuário interagindo com o Navegador Retorna nova página Servidor Web

Aplicações Estáticas x Aplicações Dinâmicas Aplicações Dinâmicas

Aplicações Estáticas x Aplicações Dinâmicas Aplicações Dinâmicas Interação sem processamento no servidor Usuário Aplicação Web

Aplicações Estáticas x Aplicações Dinâmicas Aplicações Dinâmicas Interação sem processamento no servidor Processamento no navegador Usuário Aplicação Web

Aplicações Estáticas x Aplicações Dinâmicas Aplicações Dinâmicas Interações com o servidor menos frequentes Link, Âncora ou Input Retorna nova página Usuário interagindo com o Navegador Servidor Web

Aplicações Estáticas x Aplicações Dinâmicas Aplicações Dinâmicas Características Interações com o servidor menos frequentes Novas formas de interação com o usuário Menor tempo de espera do usuário

Aplicações Estáticas x Aplicações Dinâmicas Aplicações dinâmicas = (X)HTML + CSS + Javascript + DOM HTML + DHTML + XML + HTML Events + XML Schema + DTD + Webservices + JSON + Ajax + HTML5 + SVG + Canvas +...

Aplicações Estáticas x Aplicações Dinâmicas Aplicações Dinâmicas RIA Rich Internet Applications Resposta aos requisitos da Web 2.0 Usuários participando da autoria de conteúdo na Web Web 2.0

Aplicações Estáticas x Aplicações Dinâmicas Aplicações Dinâmicas Exemplos Gmail Google Maps Facebook Orkut (depois de adquirido pela Google) Twitter Entre outros.

Sumário da aula Aplicações Estáticas x Aplicações Dinâmicas Javascript Características da linguagem Núcleo da linguagem HTML Events e DHTML Por que Javascript?

Javascript Introdução Desenvolvimento de aplicações dinâmicas (Lado Cliente) Processamento Local Controle sobre eventos Customização das interações com os usuários Alteração dinâmica do conteúdo ou da apresentação Realização de cálculos e computação Mais Recursos, não disponíveis no browser

Javascript Introdução Não é a mesma coisa que Java Atualmente funciona na maioria dos navegadores Internet Explorer, Firefox, Safari, Chrome, Opera, entre outros.

Javascript Histórico Criada pela Netscape Communications Corporation Lançada em 1995 no navegador Netscape Também conhecida como ECMAScript

Sumário da aula Aplicações Estáticas x Aplicações Dinâmicas Javascript Características da linguagem Núcleo da linguagem HTML Events e DHTML Por que Javascript?

Javascript Características da Linguagem Linguagem interpretada O código fonte é interpretado toda vez que o programa é executado Contraste com linguagens compiladas Decremento de desempenho em relação a linguagens compiladas

Javascript Características da Linguagem Tipagem Dinâmica Alteração dinâmica Tipos de variáveis Atributos de objetos Métodos de objetos

Javascript Características da Linguagem Funções de ordem superior Funções podem ser passadas como argumentos para outras funções ou métodos

Javascript Características da Linguagem Programação Client side Executada no navegador do cliente Não interfere no processamento de lado servidor

Sumário da aula Aplicações Estáticas x Aplicações Dinâmicas Javascript Características da linguagem Núcleo da linguagem HTML Events e DHTML Por que Javascript?

Javascript Núcleo da Linguagem Por onde começar? Inserir o código Javascript dentro do elemento <head> ou <body> Inserir um documento externo

Javascript Núcleo da Linguagem Dentro do elemento <head> <html> <html> <head> <head> <script <script type="text/javascript">...... </script> </head> </head>...... </html> </html>

Javascript Núcleo da Linguagem Dentro do elemento <body> <html> <html> <head> <head> </head> </head> <body> <body> <script <script type="text/javascript">...... </script> </body> </body>...... </html> </html>

Javascript Núcleo da Linguagem Dentro do elemento <head> e <body> <html> <head> <script type="text/javascript">... </script> </head> <body> <script type="text/javascript">... </script> </body>... </html>

Javascript Núcleo da Linguagem Declaração externa <html> <head> <script src="myfunctions.js"></script> </head> <body> </body> </html>

Javascript Núcleo da Linguagem Exemplo 1 <html> <head> <script type="text/javascript"> document.write( <h1>exemplo 1</h1> ); </script> </head> <body> <h2>introdução JavaScript</h2> </body> </html>

Javascript Núcleo da Linguagem Refletindo sobre o Exemplo 1 <h1> e <h2>. Faz diferença qual utilizar? O que significa ç e ã? (Relembrando HTML) Por que o <h1> apareceu antes do <h2>?

Javascript Núcleo da Linguagem Exemplo <html> <head> <title>exemplo 2 Javascript</title> </head> <body> <h1>operadores Aritmético JavaScript</h1> <script type="text/javascript"> document.write( <code>1 + 2 + 3 = " + (1+2+3) + "</code> ); </script> </body> </html>

Javascript Núcleo da Linguagem Refletindo sobre o Exemplo 2 Por que utilizar o elemento <code>? (Relembrando mais HTML) Por que o <h1> apareceu antes do <code>? Faz diferença o lugar onde o elemento <script> é inserido?

Javascript Núcleo da Linguagem Operadores aritméticos

Javascript Núcleo da Linguagem Operadores de comparação

Javascript Núcleo da Linguagem Operadores bit a bit

Javascript Núcleo da Linguagem Operadores de atribuição

Javascript Núcleo da Linguagem Operadores Lógicos

Javascript Núcleo da Linguagem <script type="text/javascript"> var d = new Date(); If e else var time = d.gethours(); if (time<10){ document.write("<b>good morning</b>"); } //pode terminar aqui, ou ter um else ou else if else if (time>10 && time<16){ document.write("<b>good day</b>"); } // e ainda pode ter um else else{ document.write("<b>hello World!</b>"); } </script>

Javascript Núcleo da Linguagem <script type="text/javascript"> // Note that Sunday=0,Monday=1, Tuesday=2, etc. var d=new Date(); theday=d.getday(); switch (theday){ case 5: document.write("que bom sexta!!"); break; case 6: document.write("super Sabado"); break; default: document.write("esperando o fim de semana!"); } </script> Switch

Javascript Núcleo da Linguagem <html> <body> <script type="text/javascript"> var i=0; for (i=0;i<=8;i++){ document.write("the number is " + i); document.write("<br />"); } </script> </body> </html> For Resultado: The number is 0 The number is 1 The number is 2 The number is 3 The number is 4 The number is 5 The number is 6 The number is 7 The number is 8

Javascript Núcleo da Linguagem <html> <body> <script type="text/javascript"> var i=0; while (i<=10){ document.write("the number is " + i); document.write("<br />"); i=i+1; } </script> </body> </html> While Resultado: The number is 0 The number is 1 The number is 2 The number is 3 The number is 4 The number is 5 The number is 6 The number is 7 The number is 8 The number is 9 The number is 10

Javascript Núcleo da Linguagem <html> <head> <script type="text/javascript"> function displaymessage(message){ window.alert(message); } displaymessage( utilizando funcoes... ); </script> </head> <body> </body> </html> function

Javascript Núcleo da Linguagem Outras estruturas de controle: Break Loops For...In Try...Catch Throw...

Javascript Núcleo da Linguagem Objetos Javascript? String Date Array Boolean Math RegExp http://www.w3schools.com/

Sumário da aula Aplicações Estáticas x Aplicações Dinâmicas Javascript Características da linguagem Núcleo da linguagem HTML Events e DHTML Por que Javascript?

HTML Events e DHTML Considerações a respeito de Javascript Processamento em lado cliente da aplicação web Disponibiliza o ferramental necessário para desenvolvimento de rotinas complexas no cliente

HTML Events e DHTML Considerações a respeito de Javascript Processamento em lado cliente da aplicação web Disponibiliza o ferramental necessário para desenvolvimento de rotinas complexas no cliente Como utilizar isso para melhorar a interação com o usuário?

HTML Events e DHTML Considerações a respeito de Javascript Javascript sozinho é insuficiente para incrementar a interação no cliente Necessidade de determinar formas de controle sobre os elementos HTML e interações no navegador

HTML Events e DHTML DOM HTML Modelo de acesso e manipulação dos elementos HTML HTML Events Modelo de manipulação e controle sobre eventos no HTML

HTML Events e DHTML Exemplo de DOM HTML <html> <head> <title>exemplo 3 Javascript</title> </head> <body> <h1>javascript</h1> <p>introdução ao Javascript em uma aula super legal.<p> <script type="text/javascript"> alert(document.body.childnodes[3].innerhtml); </script> </body> </html>

HTML Events e DHTML Exemplo DOM HTML

HTML Events e DHTML Exemplo DOM HTML document.body.childnodes[3].innerhtm L Elemento <body> Elemento <p> Introdução ao Javascript em uma aula super legal.

HTML Events e DHTML Exemplo DOM HTML <html> <head> <title>exemplo 4 Javascript</title> </head> <body> <h1>javascript</h1> <p>introdução ao Javascript em uma aula super legal.<p> <script type="text/javascript"> document.body.childnodes[3].innerhtml = AAAAAAAAAA ; </script> </body> </html>

HTML Events e DHTML DOM HTML == DOM XML?

<html> <head> <title>exemplo 5 Javascript</title> </head> <body> <h1>javascript</h1> <p>introdução ao <a href="#" title="teste click">javascript</a>.<p> <script type="text/javascript"> document.getelementsbytagname("a")[0].onclick = function(){ alert("evento click no link"); }; </script> </body> HTML Events e DHTML Exemplo HTML Events

HTML Events e DHTML Outra forma de declarar um handler de eventos <a href= # onclick= alert('click no elemento link') >link</a>

HTML Events e DHTML Outro exemplo HTML Events <html> <head> <title>exemplo 5 Javascript</title> </head> <body> <h1>javascript</h1> <p>introdução ao <a href="#" title="teste click">javascript</a>.<p> <script type="text/javascript"> document.getelementsbytagname("p")[0].onclick = function(){ alert("evento click"); }; document.getelementsbytagname("a")[0].onclick = function(){ alert("evento click no link"); }; </script> </body>

HTML Events e DHTML Outro exemplo HTML Events <html> <head> <title>exemplo 5 Javascript</title> </head> <body> <h1>javascript</h1> <p>introdução ao <a href="#" title="teste click">javascript</a>.<p> <script type="text/javascript"> Clique no link: 2 Alerts? document.getelementsbytagname("p")[0].onclick = function(){ alert("evento click"); }; document.getelementsbytagname("a")[0].onclick = function(){ alert("evento click no link"); }; </script>

HTML Events e DHTML Fluxo de eventos no HTML Fase de Captura Raiz do Documento Elemento Target

HTML Events e DHTML Fluxo do evento no HTML no exemplo Fase de Captura Raiz do Documento Fluxo da raiz do documento diretamente até o elemento que foi responsável pelo lançamento do evento Elemento <a>

HTML Events e DHTML Fluxo de eventos no HTML Fase de Bubbling Bubling Raiz do Documento Elemento Target

HTML Events e DHTML Fluxo do evento no exemplo Fase de Bubbling Bubling Raiz do Documento Fluxo do elemento Target até a raiz do documento ativando todos os respectivos handlers para o mesmo evento. Elemento Target

HTML Events e DHTML Mais detalhes a respeito de HTML Events: http://www.w3.org/tr/dom Level 2 Events/events.html

HTML Events e DHTML Mais um exemplo de HTML Events <html> <head> <script type="text/javascript"> alert(document.getelementsbytagname("h2")[0].innerhtml); </script> </head> <body> <h2>introdução JavaScript</h2> </body> </html>

HTML Events e DHTML Mais um exemplo de HTML Events <html> <head> <script type="text/javascript"> alert(document.getelementsbytagname("h2")[0].innerhtml); </script> </head> <body> <h2>introdução JavaScript</h2> </body> </html> Por que não funciona?

HTML Events e DHTML Mais um exemplo de HTML Events <html> <head> <script type="text/javascript"> alert(document.getelementsbytagname("h2")[0].innerhtml); </script> </head> <body> <h2>introdução JavaScript</h2> </body> </html> Evento Onload?

HTML Events e DHTML Importante: DOM Level 2 Events não especifica todos os eventos (ex: keypress) Novas especificações sob desenvolvimento

HTML Events e DHTML DHTML

HTML Events e DHTML DHTML = (X)HTML + CSS + JAVASCRIPT + DOM HTML + HTML Events

HTML Events e DHTML DHTML = (X)HTML + CSS + JAVASCRIPT + DOM HTML + HTML Events Aplicações Dinâmicas

HTML Events e DHTML O que falta? AJAX e Ajax HTML 5 CSS 3.0 Canvas SVG Entre outras.

Sumário da aula Aplicações Estáticas x Aplicações Dinâmicas Javascript Características da linguagem Núcleo da linguagem HTML Events e DHTML Por que Javascript?

Sumário da aula Aplicações Estáticas x Aplicações Dinâmicas Javascript Características da linguagem Núcleo da linguagem HTML Events e DHTML Por que Javascript?

Por que Javascript? Limitações do Javascript Acesso limitado dos recursos do computador (sem banco de dados, câmera, entre outros) Same origin policy (limitação AJAX) Limites de segurança definido pelas especificações do navegador Diferenças de implementação entre os navegadores

Por que Javascript? Framework Javascript... Webservices AJAX JSON Canvas SVG DOM Events Javascript CSS HTML Navegador

Por que Javascript? Framework Javascript padrões Web... Webservices AJAX JSON Canvas SVG DOM Events Javascript CSS HTML Navegador

Tarefa para próxima aula: Submeter como Atividades do agora.tidia ae.usp.br A partir do html da sua grade horária, voce deve apresentar as ementas resumidas das disciplinas ao clicar no nome OU no código de cada uma delas. As ementas devem ser coletadas das informações do Jupiterweb previamente e devem estar no conteúdo Html da página, sem que seja apresentado. Use CSS para fazer a apresentação do html, sem apresentar as ementas previamente coletadas. Use Javascript para que reaja a interação de clique sobre a disciplina mostrando a ementa devidamente apresentada com um CSS apropriado. As ementas devem ser adicionadas dinamicamente com o uso de Javascript, DOM HTML, Events e CSS (DHTML). Tentem evitar o uso de alerts.