A mellékelt Counter.htm lap betöltése után egy címke látható a lapon, melyen megjelenik az aktuális percérték. A művelet az INDÍTÁS gombbal indítható el. A HTML lap kódjában vehetjük szemügyre a számlálást végző JavaScript kódot.
A kód doCounterDown és doSetInterval függvényei végzik el a tulajdonképpeni számítást. Létre kell hoznunk néhány változót a script-blokkban. Először egyet az intervallumot beállító függvény visszatérési értékének, melyre szükségünk lesz az időzítő leállításához:
Egyet-egyet pedig a percek és másodpercek tárolására:
var minutes = 20;
var seconds = 59;
A számlálást az egyszerűség kedvéért egy fix számértékről indítjuk, mely most 20 perc. A doSetInterval függvénnyel paraméterezhető az időzítő metódus, melynek neve setInterval:
function doSetInterval()
{
interval = window.setInterval("doCountDown()",1000);
}
Látható, hogy a setInterval függvény a window objektum tagfüggvénye. Első paraméterében kell megadni az elvégzendő műveletet karakterlánc formájában – ahogy példánkban is egy függvénynevet - második paraméterében pedig a végrehajtási sűrűséget ezredmásodpercekben.
A doCountDown függvény először mindig kiolvassa az előző periódusban a változókba mentett információkat:
function doCountDown()
{
var time = "";
var s = seconds;
var m = minutes;
Majd miután kiértékelte azokat, és megfelelő módon csökkentette a két összetevőt, összeállítja egy karakterlánc formájában a megjelenítendő értéket, és eltárolja a time változóban. A műveletek végén a Label kontrol innerText property-jének értékül adja ezt az értéket:
document.all["counter"].innerText = time;
A megváltozott értékeket elmenti a script-szintű globális változókba:
Ha a számláló eléri a nullát, akkor megszünteti az időzítőt az interval nevű változó értékének felhasználásával:
window.clearInterval(interval);
A számláló indítását a nyomógomb onclick eseménykezelőjében végezzük el:
<INPUT id="Button1" style="Z-INDEX: 103; LEFT: 282px; WIDTH: 87px; POSITION: absolute; TOP: 87px; HEIGHT: 24px" type="button" value="Indítás" name="Button1" onclick="doSetInterval()">