JavaScript/Timer: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
ortografia
m Update syntaxhighlight tags - remove use of deprecated <source> tags
 
Riga 5:
== One-shot timer ==
Per '''one-shot timer''', o '''timeout''', si intendono quei timer che permettono di eseguire un'istruzione dopo un determinato numero di millisecondi. Il metodo <code>setTimeout</code> dell'oggetto <code>window</code> prende come parametri una stringa contenente l'istruzione da eseguire e il numero di secondi dopo i quali deve essere eseguita. Ad esempio:
<sourcesyntaxhighlight lang=javascript>var tim = setTimeout('alert("ciao!")', 3000); //l'oggetto window può essere sottinteso</sourcesyntaxhighlight>
Inserendo questa istruzione al caricamento della pagina, dopo 3 secondi (3000 millisecondi) verrà visualizzato un messaggio di alert.
 
Attenzione: i timeout '''non interrompono''' il normale flusso degli script. Ad esempio:
<sourcesyntaxhighlight lang=javascript>var tim = setTimeout('alert("ciao!")', 3000);
alert("secondo alert");
</syntaxhighlight>
</source>
In questo caso verrà mostrato prima il secondo alert in quanto l'esecuzione del primo è ritardata di tre secondi.
<br/>Nella stringa è possibile anche inserire una funzione, ovviamente.
 
Il metodo setTimeout restituisce un ID numerico che identifica univocamente ciascun timer impostato; questo è utile in relazione al metodo <code>clearTimeout()</code> che elimina il timeout impostato con il metodo visto precedentemente. Questo può servire per permettere all'utente di fermare un timer già iniziato. Ad esempio:
<sourcesyntaxhighlight lang=javascript>
var tim = setTimeout('alert("la bomba è esplosa")', 3000); //la bomba esploderà tra 3 secondi
var pwd = prompt("se inserisci la password corretta potrai disinnescare la bomba prima che esploda....");
Riga 22:
clearTimeout(tim); //disinnesca il timer (la "bomba")
}
</syntaxhighlight>
</source>
 
== Impostare intervalli regolari ==
Diversi dai timeout sono quei timer che impostano azioni da eseguire ad intervalli regolari. Ad esempio:
<sourcesyntaxhighlight lang=javascript> var tim = setInterval ("aggiornaPagina()", 1000);</sourcesyntaxhighlight>
Con questa istruzione facciamo sì che la funzione <code>aggiornaPagina</code> venga eseguita ogni secondo. Come per i timeout, possiamo eliminare i timer ricorrendo ad un'apposita funzione:
<sourcesyntaxhighlight lang=javascript>clearInterval(tim);</sourcesyntaxhighlight>
che interrompe l'esecuzione del timer precedentemente avviato.
[[Categoria:JavaScript|Timer]]