Fabio Donatantonio

Resta connesso

Software Developer / Adjunct Professor

Costruire un orologio con cicli di temporizzazione

La precisa temporizzazione degli eventi sulle pagine web le trasforma da documenti statici a vere applicazioni multimediali.
Un esempio classico e allo stesso tempo esaustivo è la realizzazione di un orologio javascript che utilizzi dei cicli di temporizzazione.

L’istruzione necessaria a temporizzare una funzione è:

var timeout = setTimeout('funzione();',1000);

Mentre per interrompere un ciclo di temporizzazioni la funzione è:

clearTimeout(timeout);

Vediamo ora il codice necessario alla realizzazione di un orologio:

var timeout;

function ScriviOra(){
     // Istanzio l'oggetto Date e ricavo ora, minuti e secondi
     var oggi = new Date();
     var ore = oggi.getHours();
     var minuti = oggi.getMinutes();
     var secondi = oggi.getSeconds();

     // Formatto minuti e secondi su due cifre
     minuti = Formatta(minuti);
     secondi = Formatta(secondi);

     // Scrivo la stringa contenente l'orario in un campo di tipo input
     var orario = ore + ":" + minuti + ":" + secondi;
     document.getElementById('time').value=orario;

     // Ripeto la funzione dopo un secondo
     timeout = setTimeout('ScriviOra();', 1000);
}

// Funzione necessaria a formattare l'orario
function Formatta(valore){
     if(valore < 10){
          return "0"+valore;
     }
     return valore;
}

// La funzione necessaria ad interrompere l'orologio
function FermaOra(){
     clearTimeout(timeout);
}

Visto il codice javascript è ora necessario creare il campo di input che conterrà l’orario e due bottoni, uno per inizializzare l’orologio e uno per interromperlo:

<input type='text' id='time' size='8' readonly/>
<br/>
<input type='button' value='Start orologio' onClick='ScriviOra();'/>
<input type='button' value='Stop orologio' onclick='FermaOra();'/>

Il cuore dello script è la funzione ScriviOra(). Ogni secondo la funzione determina l’ora corrente, la formatta e la inserisce nel campo di testo e imposta un timeout per eseguire ScriviOra() un secondo dopo.
Da notare come lo script inizi dichiarando la variabile che conterrà i timeout.
Infine la funzione FermaOra() ha il compito di annullare l’ultimo timeout impostato, l’effetto sarà quello di veder fermo l’orario all’ultima esecuzione della funzione ScriviOra().

Cliccando qui è possibile vedere in esecuzione il codice completo

Fabio Donatantonio

Fabio Donatantonio. Analista e sviluppatore full-stack di applicazioni web in linguaggio PHP. Professore a Contratto per le cattedre di Fondamenti di Informatica e Archivistica Digitale presso Università degli Studi eCampus. Dal 2008 curatore del sito www.donatantonio.net, da sempre appassionato di programmazione, mare, sigari e... musica.

Leave a reply

Your email address will not be published. Required fields are marked *

 

Didattica

Università degli Studi eCampus
Data Evento
09/02/2021
14:30
Esame Archivistica Digitale e Informatica per le Scienze Umane - Cds Letteratura, Lingua e Cultura Italiana - Lettere
09/02/2021
14:30
Esame Introduzione all'Archivistica Digitale e all'Informatica per le Scienze Umane - Cds Letteratura, Arte, Musica e Spettacolo - Lettere
09/02/2021
17:30
Esame Abilità Informatiche e Telematiche - Cds Design e Discipline della Moda - Lettere
09/02/2021
17:30
Esame Abilità Informatiche e Telematiche - Cds Letteratura, Arte, Musica e Spettacolo - Lettere
Risorse
Guida HTML/CSS per principianti (link)
Introduzione agli ipertesti (link)
Esercizi guidati in Java (link)
Intelligenza artificiale (link)
Libri
Fondamenti di Informatica (2011) (link)
Informatica per le Scienze Umane (2011) (link)
Fondamenti di Informatica (2014) (link)
Pagina Docente
uniecampus.it - Scheda Docente (link)
Contatti
fabio.donatantonio[at]uniecampus.it

JWhisper, sviluppato presso il Dipartimento di Informatica Applicata dell'Università degli Studi di Salerno:

Stay Connected

Twitter

Le mie foto

Foto di Fabio Donatantonio
×