tratamento de eventos para web

72
Tratamento de Eventos para WEB Felipe Natale Munhoz SENAC TI - T´ ecnico em Inform ´ atica para Internet - Florian ´ opolis/SC 1/1

Upload: felipe-munhoz

Post on 28-Jun-2015

1.104 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Tratamento de Eventos para WEB

Tratamento de Eventos para WEB

Felipe Natale Munhoz

SENAC TI - Tecnico em Informatica para Internet - Florianopolis/SC

1 / 1

Page 2: Tratamento de Eventos para WEB

Tratamento de Eventos para WEB

COMPETENCIATratar eventos para web utilizando linguagem script, observando asintaxe da linguagem, funcoes, passagem de parametros,bibliotecas, a partir das caracterısticas de tratamento de eventos,com visao logica e paciencia, a fim de estabelecer a comunicacaoentre a acao e a rotina computacional.

Carga horaria

21 Horas

2 / 1

Page 3: Tratamento de Eventos para WEB

Tratamento de Eventos para WEB

Pilares: conhecimentos, habilidades e valoresCaracterısticas da linguagem script: sintaxe da linguagem,funcoes, passagem de parametros, bibliotecas

Criar scripts da linguagemOrganizacaoVisao logica

Caracterısticas de tratamento de eventosUtilizar eventosPacienciaPro-atividade

3 / 1

Page 4: Tratamento de Eventos para WEB

Tratamento de Eventos para WEB

Metodologia

Aula expositiva e dialogada

Aula pratica

Mınimo de separacao entre teoria e pratica

Recursos didaticosSlides

Computador

Quadro

Internet

4 / 1

Page 5: Tratamento de Eventos para WEB

Tratamento de Eventos para WEB

Indicadores e Desempenho

Associa eventos e acoes aos componentes graficos de umainterface de acordo com as caracterısticas de tratamento deeventos e aplicacoes graficas, com visao logica eorganizacao.

Eventos web tratados utilizando linguagem script.

Estrategia de avaliacao

Observacao da participacao diaria de cada um

Avaliacoes praticas focadas no desenvolvimento deaplicacoes aplicando os conhecimentos adquiridos

5 / 1

Page 6: Tratamento de Eventos para WEB

JavaScript: Introducao

HistoricoJavaScript foi criada em dezembro de 1995 por Brendan Eichna epoca funcionario da Netscape.

Originalmente foi chamada de Mocha, e logo depoisrenomeada para LiveScript.

Devido a um acordo com a Sun Microsystems passou a serchamada de JavaScript como uma estrategia de marketingentre as duas empresas.

6 / 1

Page 7: Tratamento de Eventos para WEB

JavaScript: Introducao

HistoricoRapidamente JavaScript fez sucesso como linguagemclient-side possibilitando um novo patamar para odesenvolvimento WEB.

Pouco tempo depois devido a guerra dos browsers da epocaa Microsoft desenvolveu uma linguagem compatıvel comJavaScript para o IE.

Para evitar problemas com uso de marcas a versao daMicrosoft foi chamada JScript.

7 / 1

Page 8: Tratamento de Eventos para WEB

JavaScript: Introducao

HistoricoMesmo que JScript fosse compatıvel com JavaScript, aindahaviam diferencas entre as duas linguagens

Poucos meses depois a Netscape submeteu a linguagemJavaScript para a organizacao ECMA com o objetivo de setornar um padrao da industria.

JavaScript foi entao padronizada como linguagemECMAScript

8 / 1

Page 9: Tratamento de Eventos para WEB

JavaScript: Introducao

CuriosidadeAtualmente JavaScript e a linguagem mais popular no github

https://github.com/languages/JavaScript

9 / 1

Page 10: Tratamento de Eventos para WEB

JavaScript: Introducao

Definicao

JavaScript e uma Linguagem Script

Linguagem Script e aquela executada do interior de um programa,atraves de outra linguagem de programacao, ou de maquinavirtual propria.

10 / 1

Page 11: Tratamento de Eventos para WEB

JavaScript: Introducao

MitosApesar de sua popularidade JavaScript ainda e poucocompreendida nos dias de hoje

As linguagens JavaScript e Java nao tem nenhuma relacaouma com a outra

Por ter o sufixo Script no nome algumas pessoas acreditamerroneamente que JavaScript nao e uma linguagem deprogramacao de verdade.

11 / 1

Page 12: Tratamento de Eventos para WEB

JavaScript: Introducao

O que pode ser feito

Validacoes em formularios

Interatividade em paginas WEB

Animacoes

Desenhos

Jogos

Aplicacoes server-side(node.js)

12 / 1

Page 13: Tratamento de Eventos para WEB

JavaScript: Introducao

Antes de comecar!

13 / 1

Page 14: Tratamento de Eventos para WEB

JavaScript: Introducao

Codigo binario

1 00110001 00000000 00000000

2 00110001 00000001 00000001

3 00110011 00000001 00000010

4 01010001 00001011 00000010

5 00100010 00000010 00001000

6 01000011 00000001 00000000

7 01000001 00000001 00000001

8 00010000 00000010 00000000

9 01100010 00000000 00000000

14 / 1

Page 15: Tratamento de Eventos para WEB

JavaScript: Introducao

Codigo JavaScript

1 var c = 0, t = 1;

2 while (t <= 10) {

3 c += t;

4 t += 1;

5 }

6 print(c);

15 / 1

Page 16: Tratamento de Eventos para WEB

JavaScript: Introducao

Codigo JavaScript

1 var total = 0, count = 1;

2 while (count <= 10) {

3 total += count;

4 count += 1;

5 }

6 print(total);

16 / 1

Page 17: Tratamento de Eventos para WEB

JavaScript: Introducao

Importante

Escreva codigo legıvel

Escreva codigo para outras pessoas entenderem

Preocupe-se com identacao

Pare e pense no nome das variaveis

17 / 1

Page 18: Tratamento de Eventos para WEB

JavaScript: Introducao

ConceitosValores, variaveis, e controle defluxo

18 / 1

Page 19: Tratamento de Eventos para WEB

JavaScript: valores, variaveis e controle de fluxo

Dentro do mundo da computacao, tudo sao dados

Em JavaScript a maioria destes dados sao separados emestruturas que vamos chamar de valores

Cada um destes valores tem um tipo.

Este tipo determina as regras que poderao ser aplicadas aeste valor

19 / 1

Page 20: Tratamento de Eventos para WEB

JavaScript: valores, variaveis e controle de fluxo

Tipos basicos de valoresNumber

String

Boolean

Object

Function

Undefined

20 / 1

Page 21: Tratamento de Eventos para WEB

JavaScript: Introducao

Number

21 / 1

Page 22: Tratamento de Eventos para WEB

JavaScript: valores, variaveis e controle de fluxo

Number143

13178

-20.3

3.56

0.3455

2.493e8

22 / 1

Page 23: Tratamento de Eventos para WEB

JavaScript: valores, variaveis e controle de fluxo

NumberEm JavaScript todos os valores Number sao armazenadosem 64 bits

O number armazena tanto numeros positivos quantonegativos

Armazena tambem numeros nao inteiros

Dos 64 bits 11 sao usados para armazenar o valor fracionariodo numero

E 1 bit e utilizado para armazenar o sinal

Sobram entao 52 bits para armazenar o valor inteiro

23 / 1

Page 24: Tratamento de Eventos para WEB

JavaScript: Introducao

Operadores

24 / 1

Page 25: Tratamento de Eventos para WEB

JavaScript: valores, variaveis e controle de fluxo

Numeros, operadores, aritmetica134 + 6

33 * 2 + 5

55 -3

(22 - 2) * 4

(15 / 3) - 3

100 * 4 - 4 + 10 / 2

25 / 1

Page 26: Tratamento de Eventos para WEB

JavaScript: Introducao

PraticaNumbersOperadoresAritmetica

26 / 1

Page 27: Tratamento de Eventos para WEB

JavaScript: Introducao

String

27 / 1

Page 28: Tratamento de Eventos para WEB

JavaScript: strings

Tipo de dado para armazenamento de texto

O texto deve sempre ficar entre aspas duplas

Como colocar o caracter aspas duplas em uma string?

Alguns caracteres devem ser escapados

O cacacter barra invertida e usado para isso.

28 / 1

Page 29: Tratamento de Eventos para WEB

JavaScript: strings

1 var exemplo1 = "exemplo simples de string";2 var exemplo2 = "aspas duplas devem ser escapadas: \" ";3 var exemplo3 = "caracter de nova linha: \n "4 var exemplo4 = "caracter barra invertida \\"

29 / 1

Page 30: Tratamento de Eventos para WEB

JavaScript: strings

Strings em JavaScript nao podem ser subtraıdas oumultiplicadas

Para concatenar strings pode ser utilizado o caracter +

O caracter + neste caso e um operador, assim como osoperadores * - / utilizados para o tipo de dado Number

30 / 1

Page 31: Tratamento de Eventos para WEB

JavaScript: strings

1 var exemplo1 = "uma " + "parte " + "da " + "string";

31 / 1

Page 32: Tratamento de Eventos para WEB

JavaScript: operadores

Todos os operadores que vimos ate agora sao chamados deoperadores binarios

Operadores binarios sao aplicados a dois argumentos

Existem tambem operadores unarios que sao aplicados a umargumento

O operador typeof e um exemplo de operador unario

Dado um valor para o operador typeof ele retorna uma stringcom o tipo do valor passado

O operador menos (-) pode ser utilizado tanto como binarioquanto como unario

32 / 1

Page 33: Tratamento de Eventos para WEB

JavaScript: operadores

1 typeof 4

2 typeof "teste"

3 typeof 3.6

4 - (5 * 2)

33 / 1

Page 34: Tratamento de Eventos para WEB

JavaScript: boolean

Outro tipo de dado em JavaScript sao os booleans

Booleans podem ter dois valores true e false

34 / 1

Page 35: Tratamento de Eventos para WEB

JavaScript: boolean

1 // repare nos operadores utilizados

2

3 4 > 3 // true

4 2 > 8 // false

5 "string1" === "string2" // false

6 "string1" === "string1" // true

35 / 1

Page 36: Tratamento de Eventos para WEB

JavaScript: operadores logicos

Existem algumas operacoes muito uteis que podem seraplicadas aos valores booleanos.

JavaScript suporta tres operadores logicos and, or e not

36 / 1

Page 37: Tratamento de Eventos para WEB

JavaScript: operadores logicos

1 true && false // false2 true || false // true3 !true // false4 !false // true5 (4 >= 6 || "v1" != "v2") && !(12 * 2 == 144 && true) // true or false ?

37 / 1

Page 38: Tratamento de Eventos para WEB

JavaScript: Introducao

PraticaStringsBooleansOperadores

38 / 1

Page 39: Tratamento de Eventos para WEB

JavaScript: expressoes e declaracoes

Ate agora vimos JavaScript como uma maquina de calcular

Todos estes codigos JavaScript sao chamados deexpressoes

Existe um nıvel mais elevado de codigo que expressoes, epodemos chama-los de declaracoes

Um programa e constituıdo por uma lista de declaracoes

Grande parte das declaracoes em JS terminam com umponto e vırgula.

0;

39 / 1

Page 40: Tratamento de Eventos para WEB

JavaScript: armazendando valores

Uma declaracao simples como a mostrada a seguir nao emuito util

false;

Esta declaracao nao faz nada, ela apenas e avaliada e jogadano coletor de lixo do JS.

As declaracoes se tornam uteis quando afetam o mundoexterior

Isto pode ser feito, enviando uma mensagem para o usuario,alterando a tela do programa, etc.

Um bom ponto de partida para isso e armazenar os valoresdas expressoes.

40 / 1

Page 41: Tratamento de Eventos para WEB

JavaScript: armazendando valores

Para acessar valores armazenados JS e em outraslinguagens sao utilizadas variaveis

Variaveis sempre tem um nome e podem ou nao estarreferenciando um valor armazenado em memoria

var variavelTeste = 4 * 7;

A declaracao acima cria uma variavel chamadavariavelTeste e e utilizada para acessar o valor da expressao4 * 7

Apos executar esta declaracao ao digitar o nome da variavelno console, o valor 28 sera mostrado;

41 / 1

Page 42: Tratamento de Eventos para WEB

JavaScript: armazendando valores

A palavra-chave var e usada para criar/declarar uma novavariavel

Variaveis podem ter os mais diferentes nomes, mas naopodem ter espacos

Para variaveis com multiplas palavras em JS utilize aconvencao camelCase

Variaveis podem conter numeros, mas nao podem comecarpor um caracter de dıgito

E permitido tambem caracteres especiais como o underscoree o cifrao

42 / 1

Page 43: Tratamento de Eventos para WEB

JavaScript: armazendando valores

Variaveis nao precisam armazenar o mesmo valor parasempre

Basta atribuir outro valor a mesma varıavel utilizando ooperador de atribuicao (=)

Inclusive e possıvel trocar o tipo de dado armazenado

43 / 1

Page 44: Tratamento de Eventos para WEB

JavaScript: armazenando valores

1 var tiposDiferentes = 5;

2 typeof tiposDiferentes // number

3 tiposDiferentes = true

4 typeof tiposDiferentes // boolean

44 / 1

Page 45: Tratamento de Eventos para WEB

JavaScript: armazenando valores

Uma variavel nao deve ser vista como uma caixa, e quedentro da caixa esta o valor desta variavel

Uma variavel e melhor compreendida como tentaculos

Sempre que for necessario guardar o valor de uma expressaodeve ser apontado um destes tentaculos para este valor

Valores sem tentaculos sao descartados pelo JavaScriptassim que a declaracao termina

45 / 1

Page 46: Tratamento de Eventos para WEB

JavaScript: armazenando valores

PraticaArmazenando valoresVariaveis

46 / 1

Page 47: Tratamento de Eventos para WEB

JavaScript: environment

A colecao de variaveis e os valores que existem emdeterminado momento e chamado de ambiente (environment)

Sempre que um programa em JS inicia e criado um ambientepara ele.

Por exemplo quando uma instancia de um navegador ecarregada um ambiente e criado para esta instancia

Neste caso o ciclo de vida do ambiente e o mesmo dajanela/aba do navegador

Ao ser criado, este ambiente carrega uma serie de valorespadrao.

47 / 1

Page 48: Tratamento de Eventos para WEB

JavaScript: funcoes

Muitos destes valores padrao carregados juntos com oambiente sao do tipo de dado function

Funcoes sao pedacos de programas, mais formalmente, umalista de declaracoes contidas em um valor.

Por exemplo no ambiente criado pelos navegadores estadisponıvel a variavel alert

48 / 1

Page 49: Tratamento de Eventos para WEB

JavaScript: funcoes

Para executar o codigo de uma funcao basta abrir e fecharparenteses apos o nome da variavel

alert(”Nova Mensagem”)

O valor do tipo String que aparece entre os parenteses e umparamentro/argumento da funcao

Uma funcao pode receber zero ou mais parametros,separados por vırgula

49 / 1

Page 50: Tratamento de Eventos para WEB

JavaScript: funcoes

Uma funcao pode tambem produzir um valor no seu final

Math.max(6, 9)

Neste caso a funcao retorna o valor maximo de uma lista devalores passados como argumento

Quando uma funcao produz um valor, dizemos que a funcaoretorna um valor

50 / 1

Page 51: Tratamento de Eventos para WEB

JavaScript: funcoes

Outras funcoes pre-definidas alem do alert sao prompt,confirm

51 / 1

Page 52: Tratamento de Eventos para WEB

JavaScript: funcoes

1 function power(base, exponent) {

2 var result = 1;

3 for (var count = 0; count < exponent; count++)

4 result *= base;

5 return result;

6 }

7

8 show(power(2, 10));

52 / 1

Page 53: Tratamento de Eventos para WEB

JavaScript: objects

Tudo em JavaScript sao objetosPodem ser acessados utilizando duas notacoes:

objeto.atributoobjeto[’atributo’]

Para criar um novo objeto:var objeto =var objeto = new Object()

53 / 1

Page 54: Tratamento de Eventos para WEB

JavaScript: objetos

1 var animal = {

2 nome: ’Rex’,

3 idade: 8,

4 possuiDono: true

5 };

6

7 var idadeDoAnimal = animal.idade;

8

9 var nomeDoAnimal = animal[’nome’];

54 / 1

Page 55: Tratamento de Eventos para WEB

JavaScript: controle de fluxo

1 for (var counter = 0; counter < 20; counter++) {

2 if (counter % 4 == 0)

3 print(counter);

4 if (counter % 4 != 0)

5 print("(" + counter + ")");

6 }

55 / 1

Page 56: Tratamento de Eventos para WEB

JavaScript: eventos

Eventos sao acoes que podem serdetectadas pelo JavaScript

56 / 1

Page 57: Tratamento de Eventos para WEB

JavaScript: eventos

Paginas WEB em HTML+CSS sao estaticas

Adicionar JavaScript permite criarmos paginas WEBdinamicas

57 / 1

Page 58: Tratamento de Eventos para WEB

JavaScript: eventos

Todo elemento de uma pagina WEB possui eventos quepodem ser vinculados ao JavaScript

Por exemplo podemos vincular o evento de clique de botaoHTML para uma funcao JavaScript

Desta forma sempre que o botao for clicado a funcaoJavaScript sera executada

58 / 1

Page 59: Tratamento de Eventos para WEB

JavaScript: eventos

Exemplos de eventosO clique do mouse

O carregamento de uma pagina WEB ou de uma imagem

Passar o mouse por um elemento da pagina

Selecionar um elemento de um campo de um formularioHTML

Submeter um formulario HTML

Pressionar uma tecla

59 / 1

Page 60: Tratamento de Eventos para WEB

JavaScript Inline - Nunca use!

1 <html>2 <head>3 </head>4 <body>5 <span onclick="alert(’Hello World!’);">Click Here</span>6 </body>7 </html>

60 / 1

Page 61: Tratamento de Eventos para WEB

Exemplo com o evento OnClick

1 <html>2 <head>3 <script type="text/javascript">4 function displayDate() {5 alert(Date());

6 }

7 </script>8 </head>9 <body>

10 <button type="button" onclick="displayDate()">Display Date</button>11 </body>12 </html>

61 / 1

Page 62: Tratamento de Eventos para WEB

JavaScript: eventos

OnChange

Evento frequentemente utilizado em validacoes de camposem formularios

E ativado sempre que o campo sofrer um tipo de alteracao eperder o foco

62 / 1

Page 63: Tratamento de Eventos para WEB

OnChange

1 <html>2 <head>3 <script type="text/javascript">4 function checkChange() {5 alert("Field was changed");

6 }

7 </script>8 </head>9 <body>

10 Write something on the box

11 <input type="text" onchange="checkChange()">12 </body>13 </html>

63 / 1

Page 64: Tratamento de Eventos para WEB

JavaScript: eventos

OnSubmitEvento utilizado por exemplo para validar todos os campos deum formulario antes submeter para o servidor

E ativado quando o botao de enviar for clicado.

64 / 1

Page 65: Tratamento de Eventos para WEB

OnSubmit

1 <html>2 <head>3 <script type="text/javascript">4 function checkForm() {5 alert("Form was submitted");

6 }

7 </script>8 </head>9 <body>

10 <form method="post" action="" onsubmit="return checkForm()">11 Write something on the box <input type="text">12 <input type="submit" value="Send form">13 </form>14 </body>15 </html>

65 / 1

Page 66: Tratamento de Eventos para WEB

OnLoad

1 <html>2 <head>3 <script type="text/javascript">4 function load() {5 alert("Carregou!");

6 }

7 </script>8 </head>9 <body onload="load()">

10 <h1>Hello World!</h1>11 </body>12 </html>

66 / 1

Page 67: Tratamento de Eventos para WEB

JavaScript

jQuery

jQuery is a fast and concise JavaScript Library thatsimplifies HTML document traversing, event handling,animating, and Ajax interactions for rapid webdevelopment. jQuery is designed to change the way thatyou write JavaScript.

67 / 1

Page 68: Tratamento de Eventos para WEB

JavaScript

jQuery Vantagens

Simplifica a forma de trabalhar com Javascript

E extensıvel

E leve (31 kb a versao de producao)

E cross-browser (como os plugins podem ser criados porqualquer pessoa, podem nao manter a compatibilidade)

68 / 1

Page 69: Tratamento de Eventos para WEB

JavaScript

jQuery Vantagens

Basicamente e criada uma funcao jQuery() que retorna umobjeto

E criado um alias $ para esta funcao

Quando voce acessa $(document) voce esta chamando afuncao jQuery() passando o objeto document por parametro

Quando acessa $.ajax() esta chamando o metodo ajax() doobjeto criado pela funcao jQuery

69 / 1

Page 70: Tratamento de Eventos para WEB

JavaScript

jQuery Utilizacao

Para manipular um ou mais elementos apenas utilizamos$(SELETOR)

Existem varios valores para o SELETOR os mais comunssao: seletor de tag, seletor de id e seletor de class

70 / 1

Page 71: Tratamento de Eventos para WEB

jQuery

1 <html>

2 <head>

3 <script type="text/javascript">

4 $(document).ready(function() {

5 $("a").css("border", "9px solid red");

6 });

7 </script>

8 </head>

9 <body>

10 <a href="#">teste1</a>

11 <a href="#">teste2</a>

12 </body>

13 </html>

71 / 1

Page 72: Tratamento de Eventos para WEB

JavaScript

The art of programming is the skill of controllingcomplexity. eloquentjavascript.net

72 / 1