SlideShare ist ein Scribd-Unternehmen logo
1 von 9
Downloaden Sie, um offline zu lesen
JavaScript: Timers
Carlos Santos
LabMM 3 - NTC - DeCA - UA
Aula 08, 10-10-2012
Porque devemos utilizar timers

• uma estrutura de repetição (ciclos) executa um conjunto de instruções
  sequencialmente

• até que esse ciclo esteja terminado, o browser fica “bloqueado” ou pode
  apresentar alguma lentidão

• durante a execução de um script, a camada de visualização do browser pode
  não ser actualizada

• não é nada boa ideia implementar ciclos cujo tempo de execução seja longo!
timers

• os timers permitem executar código em intervalos de tempo específicos

  • sempre que um intervalo de tempo é atingido, o timer lança um evento
    que, normalmente, se traduz na invocação de uma função

• podemos ter muitos timers a correr em simultâneo
setInterval()

• permite invocar repetidamente uma função num intervalo de tempo
  especificado

  • setInterval("javascript function",milliseconds);

  • setInterval("minhaFuncao()", 1000);

  • setInterval(function(){minhaFuncao()}, 1000);
setTimeout()

• permite invocar uma função, apenas uma vez, após um intervalo de tempo
  especificado

  • setTimeout("javascript function",milliseconds);

  • setTimeout("minhaFuncao()", 1000);

  • setTimeout(function(){minhaFuncao()}, 1000);
Para parar a execução de um timer

• Quando um timer é criado ele é identificado por um valor que é devolvido no
  momento da sua criação.

  • var timerX = setInterval("minhaFuncao()", 1000);

  • clearInterval(timerX);



  • var timerY = setTimeout("minhaFuncao()", 1000);

  • clearTimeout(timerY);
exemplo de aplicação

• criar uma animação horizontal do objecto “X”

  • o objecto deve mover-se 20px em intervalos de tempo de 50ms;

  • o movimento deve estar limitado entre as coordenadas 0 e 400 do
    browser;

  • sempre que se atinge um dos limites, o objecto “X” deve mudar de cor;

  • depois de 4 mudanças de direcção, a animação deve parar.
estratégia de resolução do problema

• obter a posição do objecto

• mover o objecto para a direita, apenas um passo

• colocar o objecto a mover-se “sozinho” para a direita

• parar o objecto quando chega ao limite dos 400px

• colocar o objecto a andar de um lado para o outro

• fazer a mudança de cor quando se atingem os limites

• parar a animação no final das 4 mudanças de direcção
Resolução na aula

• Disponível em
  http://labmm.clients.ua.pt/2012_LM3/teorica/setInterval_aula.html

• Na solução da aula tínhamos o switch fora do if que verifica as posições
  limite.

  • porque é que alterei a sua posição para ficar dentro do if?

• Nesta solução tive também o cuidado de acrescentar mais comentários e
  adicionar variáveis para todos os valores numéricos que são especificados
  no enunciado. Estas são duas boas práticas de programação!

Weitere ähnliche Inhalte

Ähnlich wie (A08) LabMM3 - JavaScript - Timers

Python: Iteraveis, geradores etc
Python: Iteraveis, geradores etcPython: Iteraveis, geradores etc
Python: Iteraveis, geradores etcLuciano Ramalho
 
Teste unitário
Teste unitárioTeste unitário
Teste unitáriodist_bp
 
Threads 03: Ciclo de vida, aplicações e boas práticas
Threads 03: Ciclo de vida, aplicações e boas práticasThreads 03: Ciclo de vida, aplicações e boas práticas
Threads 03: Ciclo de vida, aplicações e boas práticasHelder da Rocha
 
Akka - Uma plataforma para o desenvolvimento de sistemas concorrentes e distr...
Akka - Uma plataforma para o desenvolvimento de sistemas concorrentes e distr...Akka - Uma plataforma para o desenvolvimento de sistemas concorrentes e distr...
Akka - Uma plataforma para o desenvolvimento de sistemas concorrentes e distr...Daniel Sobral
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - SubalgoritmosCarlos Santos
 

Ähnlich wie (A08) LabMM3 - JavaScript - Timers (6)

Ajax continuação
Ajax continuaçãoAjax continuação
Ajax continuação
 
Python: Iteraveis, geradores etc
Python: Iteraveis, geradores etcPython: Iteraveis, geradores etc
Python: Iteraveis, geradores etc
 
Teste unitário
Teste unitárioTeste unitário
Teste unitário
 
Threads 03: Ciclo de vida, aplicações e boas práticas
Threads 03: Ciclo de vida, aplicações e boas práticasThreads 03: Ciclo de vida, aplicações e boas práticas
Threads 03: Ciclo de vida, aplicações e boas práticas
 
Akka - Uma plataforma para o desenvolvimento de sistemas concorrentes e distr...
Akka - Uma plataforma para o desenvolvimento de sistemas concorrentes e distr...Akka - Uma plataforma para o desenvolvimento de sistemas concorrentes e distr...
Akka - Uma plataforma para o desenvolvimento de sistemas concorrentes e distr...
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos
 

Mehr von Carlos Santos

Is AI the Spice of our future?
Is AI the Spice of our future?Is AI the Spice of our future?
Is AI the Spice of our future?Carlos Santos
 
Mentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantesMentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantesCarlos Santos
 
1º Encontro Científico TCEdu
1º Encontro Científico TCEdu1º Encontro Científico TCEdu
1º Encontro Científico TCEduCarlos Santos
 
Tecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicialTecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicialCarlos Santos
 
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunosAVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunosCarlos Santos
 
AVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosAVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosCarlos Santos
 
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...Carlos Santos
 
Tecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho práticoTecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho práticoCarlos Santos
 
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)Carlos Santos
 
SAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning EnvironmentSAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning EnvironmentCarlos Santos
 
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO CampusRepensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO CampusCarlos Santos
 
A technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus projectA technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus projectCarlos Santos
 
SAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoSAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoCarlos Santos
 
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCARepensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCACarlos Santos
 
T20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidT20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidCarlos Santos
 
T19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoT19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoCarlos Santos
 
T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)Carlos Santos
 

Mehr von Carlos Santos (20)

Is AI the Spice of our future?
Is AI the Spice of our future?Is AI the Spice of our future?
Is AI the Spice of our future?
 
Mentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantesMentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantes
 
1º Encontro Científico TCEdu
1º Encontro Científico TCEdu1º Encontro Científico TCEdu
1º Encontro Científico TCEdu
 
Tecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicialTecnologias da Comunicação em Educação 2018: Aula inicial
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 (com jogos) de alunos para alunosAVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
 
AVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosAVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunos
 
chmod 777 education
chmod 777 educationchmod 777 education
chmod 777 education
 
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
 
Tecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho práticoTecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho prático
 
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
 
chmod 777 education
chmod 777 educationchmod 777 education
chmod 777 education
 
SAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning EnvironmentSAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning Environment
 
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO CampusRepensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
 
A technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus projectA technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus project
 
SAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoSAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativo
 
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCARepensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
 
T20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidT20_LM3: APIs e Scoreoid
T20_LM3: APIs e Scoreoid
 
T19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoT19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificação
 
T18_LM3: Ajax
T18_LM3: AjaxT18_LM3: Ajax
T18_LM3: Ajax
 
T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)
 

(A08) LabMM3 - JavaScript - Timers

  • 1. JavaScript: Timers Carlos Santos LabMM 3 - NTC - DeCA - UA Aula 08, 10-10-2012
  • 2. Porque devemos utilizar timers • uma estrutura de repetição (ciclos) executa um conjunto de instruções sequencialmente • até que esse ciclo esteja terminado, o browser fica “bloqueado” ou pode apresentar alguma lentidão • durante a execução de um script, a camada de visualização do browser pode não ser actualizada • não é nada boa ideia implementar ciclos cujo tempo de execução seja longo!
  • 3. timers • os timers permitem executar código em intervalos de tempo específicos • sempre que um intervalo de tempo é atingido, o timer lança um evento que, normalmente, se traduz na invocação de uma função • podemos ter muitos timers a correr em simultâneo
  • 4. setInterval() • permite invocar repetidamente uma função num intervalo de tempo especificado • setInterval("javascript function",milliseconds); • setInterval("minhaFuncao()", 1000); • setInterval(function(){minhaFuncao()}, 1000);
  • 5. setTimeout() • permite invocar uma função, apenas uma vez, após um intervalo de tempo especificado • setTimeout("javascript function",milliseconds); • setTimeout("minhaFuncao()", 1000); • setTimeout(function(){minhaFuncao()}, 1000);
  • 6. Para parar a execução de um timer • Quando um timer é criado ele é identificado por um valor que é devolvido no momento da sua criação. • var timerX = setInterval("minhaFuncao()", 1000); • clearInterval(timerX); • var timerY = setTimeout("minhaFuncao()", 1000); • clearTimeout(timerY);
  • 7. exemplo de aplicação • criar uma animação horizontal do objecto “X” • o objecto deve mover-se 20px em intervalos de tempo de 50ms; • o movimento deve estar limitado entre as coordenadas 0 e 400 do browser; • sempre que se atinge um dos limites, o objecto “X” deve mudar de cor; • depois de 4 mudanças de direcção, a animação deve parar.
  • 8. estratégia de resolução do problema • obter a posição do objecto • mover o objecto para a direita, apenas um passo • colocar o objecto a mover-se “sozinho” para a direita • parar o objecto quando chega ao limite dos 400px • colocar o objecto a andar de um lado para o outro • fazer a mudança de cor quando se atingem os limites • parar a animação no final das 4 mudanças de direcção
  • 9. Resolução na aula • Disponível em http://labmm.clients.ua.pt/2012_LM3/teorica/setInterval_aula.html • Na solução da aula tínhamos o switch fora do if que verifica as posições limite. • porque é que alterei a sua posição para ficar dentro do if? • Nesta solução tive também o cuidado de acrescentar mais comentários e adicionar variáveis para todos os valores numéricos que são especificados no enunciado. Estas são duas boas práticas de programação!