SlideShare uma empresa Scribd logo
JavaScript
Carlos Santos
LabMM 3 - NTC - DeCA - UA
Aula 04 e 05, 26-09-2011
O que é?

• 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 precisamos?

• 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...



                                                 Servidor
                     Browser
                                     http         Web
E para os programadores?

• 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,...




                                  Servidor                   Computador
       Browser
                      http         Web            ftp
                                                             programador
E em LabMM 3?

• 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.



                                       labmm.                    Computador
        Browser                     clients.ua.pt                programador
                        http                           ftp
                      acesso UA                     login/pass
                         VPN
Como incluir?

• 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>
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?
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)
Browser - DOM - JavaScript
DOM




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




http://en.wikipedia.org/wiki/File:JKDOM.SVG
DOM
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
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
Inspect!
Consola
“The DOM is a mess”




http://ejohn.org/blog/the-dom-is-a-mess/
Solução?
Como incluir?

• 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!
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
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
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

Mais conteúdo relacionado

PDF
LabMM3 - Aula teórica 04
PDF
T03_LM3: Javascript (2013-2014)
PDF
Nodejs - A performance que eu sempre quis ter
PDF
Por que Node JS?
PPTX
NodeJS - Tutorial de forma simples e pratica.
PDF
Curso de ReactJS
PPTX
Quercus - Running PHP over Java
KEY
Uma visão rápida sobre Nodejs
LabMM3 - Aula teórica 04
T03_LM3: Javascript (2013-2014)
Nodejs - A performance que eu sempre quis ter
Por que Node JS?
NodeJS - Tutorial de forma simples e pratica.
Curso de ReactJS
Quercus - Running PHP over Java
Uma visão rápida sobre Nodejs

Mais procurados (20)

PDF
Node.js for Noobs
PPTX
Introdução ao NodeJS
PDF
Node.JS - Workshop do básico ao avançado
KEY
Integração Contínua com Hudson
ODP
Conhecendo o Nodejs
ODP
Aula16 - Jquery
PPTX
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
ODP
Aula09 - Java Script
PPTX
Apresentação
PDF
React Native na globo.com
PDF
DOMinando JavaScript
PDF
Dicas para Workflow WordPress + JavaScript - WordCamp Salvador
PDF
Node js - Javascript Server Side
PDF
Php além do LAMP
PPTX
Javascript por debaixo dos panos
PDF
Vagrant - ambiente de desenvolvimento virtualizado
PPTX
Introdução ao Node.js - FATEC SP
PDF
Beyond Ruby with NodeJS - RubyConf Brasil 2010
PPTX
Introdução básica ao JavaScript
PDF
Javascript por debaixo dos panos
Node.js for Noobs
Introdução ao NodeJS
Node.JS - Workshop do básico ao avançado
Integração Contínua com Hudson
Conhecendo o Nodejs
Aula16 - Jquery
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
Aula09 - Java Script
Apresentação
React Native na globo.com
DOMinando JavaScript
Dicas para Workflow WordPress + JavaScript - WordCamp Salvador
Node js - Javascript Server Side
Php além do LAMP
Javascript por debaixo dos panos
Vagrant - ambiente de desenvolvimento virtualizado
Introdução ao Node.js - FATEC SP
Beyond Ruby with NodeJS - RubyConf Brasil 2010
Introdução básica ao JavaScript
Javascript por debaixo dos panos
Anúncio

Destaque (7)

PDF
MENOG6 Root Signing
DOCX
SLC exams to begin on March 19.
PDF
Cairo Day2 Part5 Driving Traffic Pub
PPT
euroFOT at 10th ITS Spain congress, Madrid, May 2010
PPTX
Miami
PPT
lesson 1_akt manaj
PDF
PacINET2008 World Summit Awards by Jan Bieringa
MENOG6 Root Signing
SLC exams to begin on March 19.
Cairo Day2 Part5 Driving Traffic Pub
euroFOT at 10th ITS Spain congress, Madrid, May 2010
Miami
lesson 1_akt manaj
PacINET2008 World Summit Awards by Jan Bieringa
Anúncio

Semelhante a (A04 e A05) LabMM3 - JavaScript (20)

PDF
Tecnologia web aula 03
PDF
Javascript aula 01 - visão geral
PDF
Aula 05 - Java Script Básico
PDF
Web 3.0
PPTX
Introdução sobre desenvolvimento web
PPTX
09 Java Script - As formas de usar
PPTX
Introdução ao Desenvolvimento front-end (2019)
PDF
Professor rogerio-apostila
PDF
Curso de Desenvolvimento Web - Módulo 03 - JavaScript
PDF
Java script
PDF
DESENVOLVIMENTO DE APLICAÇÕES WEB
ODP
Aula01-JavaScript
PPTX
Hands On JavaScript
PPT
Minicurso de JavaScript (Portuguese)
PPT
Melhorando a Experiência do Usuário com JavaScript e jQuery
PPTX
Introdução ao desenvolvimento de páginas web estáticas
PPTX
Desenvolvemos para web?
PDF
Fundamentos de arquitetura Web
PDF
Aula introdutória da linguagem de programação web PHP
Tecnologia web aula 03
Javascript aula 01 - visão geral
Aula 05 - Java Script Básico
Web 3.0
Introdução sobre desenvolvimento web
09 Java Script - As formas de usar
Introdução ao Desenvolvimento front-end (2019)
Professor rogerio-apostila
Curso de Desenvolvimento Web - Módulo 03 - JavaScript
Java script
DESENVOLVIMENTO DE APLICAÇÕES WEB
Aula01-JavaScript
Hands On JavaScript
Minicurso de JavaScript (Portuguese)
Melhorando a Experiência do Usuário com JavaScript e jQuery
Introdução ao desenvolvimento de páginas web estáticas
Desenvolvemos para web?
Fundamentos de arquitetura Web
Aula introdutória da linguagem de programação web PHP

Mais de Carlos Santos (20)

PDF
Modelo de CBL transversal ao 1º ano do ciclo de estudos do Mestrado em Comuni...
PPTX
Dataficação no Ensino Superior: Reflexões sobre Ética, Impacto e Transformaç...
PPTX
Dataficação no Ensino Superior: Reflexões sobre Ética, Impacto e Transformaç...
PDF
Is AI the Spice of our future?
PPTX
Mentoria entre pares de estudantes para estudantes
PDF
1º Encontro Científico TCEdu
PDF
Tecnologias da Comunicação em Educação 2018: Aula inicial
PPTX
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
PDF
AVILA Crew – Uma experiência de tutoria de alunos para alunos
PDF
chmod 777 education
PPTX
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
PDF
Tecnologias da Comunicação em Educação: trabalho prático
PPTX
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
PDF
chmod 777 education
PDF
SAPO Campus towards a
 Smart Learning Environment
PDF
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
PDF
A technological approach to Open and Social Learning: 
the SAPO Campus project
PDF
SAPO Campus: Gamification em contexto educativo
PDF
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
PDF
T20_LM3: APIs e Scoreoid
Modelo de CBL transversal ao 1º ano do ciclo de estudos do Mestrado em Comuni...
Dataficação no Ensino Superior: Reflexões sobre Ética, Impacto e Transformaç...
Dataficação no Ensino Superior: Reflexões sobre Ética, Impacto e Transformaç...
Is AI the Spice of our future?
Mentoria entre pares de estudantes para estudantes
1º Encontro Científico TCEdu
Tecnologias da Comunicação em Educação 2018: Aula inicial
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunos
chmod 777 education
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Tecnologias da Comunicação em Educação: trabalho prático
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
chmod 777 education
SAPO Campus towards a
 Smart Learning Environment
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
A technological approach to Open and Social Learning: 
the SAPO Campus project
SAPO Campus: Gamification em contexto educativo
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
T20_LM3: APIs e Scoreoid

(A04 e A05) LabMM3 - JavaScript

  • 1. JavaScript Carlos Santos LabMM 3 - NTC - DeCA - UA Aula 04 e 05, 26-09-2011
  • 2. O que é? • 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.
  • 3. O que precisamos? • 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... Servidor Browser http Web
  • 4. E para os programadores? • 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,... Servidor Computador Browser http Web ftp programador
  • 5. E em LabMM 3? • 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. labmm. Computador Browser clients.ua.pt programador http ftp acesso UA login/pass VPN
  • 6. Como incluir? • 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>
  • 7. 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?
  • 8. 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)
  • 9. Browser - DOM - JavaScript
  • 10. DOM http://www.w3.org/TR/DOM-Level-3-Core/introduction.html http://en.wikipedia.org/wiki/File:JKDOM.SVG
  • 11. DOM
  • 12. 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
  • 13. 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
  • 16. “The DOM is a mess” http://ejohn.org/blog/the-dom-is-a-mess/
  • 18. Como incluir? • 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!
  • 19. 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
  • 20. 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
  • 21. 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