(A04 e A05) LabMM3 - JavaScript

21
JavaScript Carlos Santos LabMM 3 - NTC - DeCA - UA Aula 04 e 05, 26-09-2011

Transcript of (A04 e A05) LabMM3 - JavaScript

Page 1: (A04 e A05) LabMM3 - JavaScript

JavaScript

Carlos SantosLabMM 3 - NTC - DeCA - UAAula 04 e 05, 26-09-2011

Page 2: (A04 e A05) LabMM3 - JavaScript

• Linguagem de programação para a Web...

• interpretada ou não compilada;

• todos os browsers atuais têm interpretadores de JS;

• não é Java;

• começou com o Netscape Navigator 2 (LiveScript);

• dark age (JavaScript da Netscape vs JScript da Microsoft);

• é uma aplicação da ECMAScript para a Web;

• standards são definidos pelo W3C.

O que é?

Page 3: (A04 e A05) LabMM3 - JavaScript

• Editor de texto (notepad) e um browser são suficientes!

• Nos computadores dos laboratórios do DeCA temos o PHPStorm

• Mas a Web não funciona com ficheiros guardados no disco duro do nosso computador...

O que precisamos?

Browser Servidor Webhttp

Page 4: (A04 e A05) LabMM3 - JavaScript

• Responsabilidade de colocar os ficheiros no Servidor Web.

• O que é um servidor web?

• Como é que os programadores colocam conteúdos no servidor web?

• FTP, SFTP, WebDav,...

• SVN, Git,...

E para os programadores?

Browser Servidor Web

Computador programadorhttp ftp

Page 5: (A04 e A05) LabMM3 - JavaScript

• Vamos construir cenários tão reais quanto possível!

• Servidor Web para publicação de todos os exercícios;

• Acesso FTP privado por grupos de 2;

• Soluções dos alunos são públicas e acessíveis na rede da UA;

• Publicação de projetos finais.

E em LabMM 3?

Browser labmm.clients.ua.pt

Computador programadorhttp

acesso UAVPN

ftplogin/pass

Page 6: (A04 e A05) LabMM3 - JavaScript

• Inline no header ou no body

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Exemplo</title>

<script type="application/javascript">

//Código JavaScript

</script>

</head>

<body>

//Código HTML com chamadas de JavaScript

//ou

<script type="application/javascript">

//Código JavaScript

</script>

</body>

</html>

Como incluir?

Page 7: (A04 e A05) LabMM3 - JavaScript

Para que serve o JavaScript?

• client-side e/ou server/side?

• porque é diferente do HTML?

• porque é diferente do PHP?

• quais as interfaces para entrada e saída de dados?

• e como funciona?

Page 8: (A04 e A05) LabMM3 - JavaScript

Browser - DOM - JavaScript

• Document Object Model• “The Document Object Model (DOM) is a cross-platform and language-

independent convention for representing and interacting with objects in HTML, XHTML and XML documents.”(http://en.wikipedia.org/wiki/Document_Object_Model)

Page 9: (A04 e A05) LabMM3 - JavaScript

Browser - DOM - JavaScript

Page 10: (A04 e A05) LabMM3 - JavaScript

DOM

http://en.wikipedia.org/wiki/File:JKDOM.SVG

http://www.w3.org/TR/DOM-Level-3-Core/introduction.html

Page 11: (A04 e A05) LabMM3 - JavaScript

DOM

Page 12: (A04 e A05) LabMM3 - JavaScript

Como interagem? (HTML)

• o browser efectua um pedido ao servidor por http

• o servidor devolve um ficheiro HTML estático

• o HTML devolvido pode conter JavaScript

• o browser interpreta o HTML e constrói o DOM

• no browser a página fica visível para o utilizador

• novos pedidos http são enviados para outros elementos da página

• no browser o JavaScript permite, a qualquer momento, alterar o HTML através da manipulação do DOM

Page 13: (A04 e A05) LabMM3 - JavaScript

Como interagem? (HTML ou tec. server side)

• o browser efectua um pedido ao servidor por http

• no servidor existem duas possibilidades:

• é devolvido directamente um ficheiro HTML estático ou...

• é processado um ficheiro com tecnologia server-side (por exemplo, PHP) que permite construir dinamicamente o HTML a devolver ao browser

• o HTML devolvido pode conter JavaScript

• o browser interpreta o HTML e constrói o DOM

• no browser a página fica visível para o utilizador

• novos pedidos http são enviados para outros elementos da página

• no browser o JavaScript permite, a qualquer momento, alterar o HTML através da manipulação do DOM

Page 14: (A04 e A05) LabMM3 - JavaScript

Inspect!

Page 15: (A04 e A05) LabMM3 - JavaScript

Consola

Page 16: (A04 e A05) LabMM3 - JavaScript

“The DOM is a mess”

http://ejohn.org/blog/the-dom-is-a-mess/

Page 17: (A04 e A05) LabMM3 - JavaScript

Solução?

Page 18: (A04 e A05) LabMM3 - JavaScript

• Ficheiro externo alojado no mesmo servidor

<script type=”text/javascript” src=”MeuJavaScript.js” />

• Ficheiro externo alojado num outro servidor

<script type=”text/javascript” src=”http://outro.servidor.com/JavaScriptDeOutros.js” />

• Vantagens:

• re-utilização

• manutenção

• cache!

Como incluir?

Page 19: (A04 e A05) LabMM3 - JavaScript

Primeiro exemplo: JavaScript

<html>

<body bgcolor="WHITE">

<p>Paragraph 1</p>

<script type="text/javascript">

document.bgColor = 'RED';

</script>

</body>

</html>

• Boas práticas:

• indentar o código;

• utilizar “;” para terminar as instruções.

Exemplo retirado de “Beginning JavaScript”, pág 9

Page 20: (A04 e A05) LabMM3 - JavaScript

Segundo exemplo: parsing

<html>

<body bgcolor="WHITE">

<p>Paragraph 1</p>

<script type="text/javascript">

// Script block 1

alert("First Script Block");

</script>

<p>Paragraph 2</p>

<script type="text/javascript">

// Script block 2

document.bgColor = "RED";

alert("Second Script Block");

</script>

<p>Paragraph 3</p>

</body>

</html>

• Como é que esta página é processada pelo browser?• Escrever com alert(); Exemplo retirado de “Beginning JavaScript”, pág 10

Page 21: (A04 e A05) LabMM3 - JavaScript

Terceiro exemplo: Hello world!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<body >

<p id="ResultsP"></p>

<script type="text/javascript">

// Script block 1

document.getElementById('ResultsP').innerHTML = 'Hello World!';

</script>

</body>

</html>

• E escrever o texto no campo de um formulário?

document.getElementById("campoTexto").value = “Hello World”;

Exemplo retirado de “Beginning JavaScript”, pág 14