©ilj@flowsim.se
JavaScript på svenska 42
JavaScript: setTimeout /clearTimeout / bgColor
>>> timer



START STOP
 
timerfunktion förklarad längre ner

Teckning av en marmorfigurin från ön Keros i den grekiska ögruppen Kykladerna. Figurinen är från någon gång före år 2000 f Kr och finns på nationalmuseet i Athen.
 
 
TiMER
 
En Javascript-timer kan se ut så här:
 
min_timer = setTimeout("iljtimer4()",10)
 

Syntaxen är:
 
setTimeout("GÖR NÅGOT",NÄR)
 

Exemplet
 
setTimeout("iljtimer4()",10)
 
betyder alltså: anropa funktionen iljtimer4() efter 10 millisekunder.
 

Om timern finns inne i den funktion den kallar på, så här:
 
function iljtimer4()
{
setTimeout("iljtimer4()",10)
}

 
så kommer funktionen iljtimer4() att kalla på sig själv var 10:e millisekund i all oändlighet.
 

Om man startar en timer och kallar den
min_timer så här:
 
min_timer = setTimeout("iljtimer4()",10)
 
så kan man stoppa den med följande rad:
 
clearTimeout(min_timer)
 

Om man vill hålla reda på hur länge en timer varit igång kan man använda ett räkneverk, så här:
 
raekneverk=0;
 
function iljtimer4()
{
setTimeout("iljtimer4()",10)
raekneverk=raekneverk+1;
}

 
Först skapar man ett nollställt räkneverk utanför funktionen: raekneverk sätts till 0 när sidan laddas. Varje gång funktionen iljtimer4() anropar sig själv räknas raekneverk upp med 1.
 

Om man vill stoppa timern när
raekneverk kommit till 5 kan man använda följande:
 
if(raekneverk==5) {clearTimeout(min_timer)}
 

Hela timern ser då ut så här:
 
raekneverk=0;
 
function iljtimer4()
{
setTimeout("iljtimer4()",10)
raekneverk=raekneverk+1;
if(raekneverk==5) {clearTimeout(min_timer)}
}

 
För att kolla om timern funkar kan man låta den skriva vad räkneverket står på. Man kan t ex printa siffran i fönsterkanten. Så här:
 
window.status='Räkneverk: '+raekneverk
 

Hela timern ser då ut så här:
 
raekneverk=0;
 
function iljtimer4()
{
setTimeout("iljtimer4()",10)
raekneverk=raekneverk+1;
window.status='Räkneverk: '+raekneverk;
if(raekneverk==5) {clearTimeout(min_timer)}
}

 

Om man har en bild på sin HTML-sida och bilden fått namnet bildplats kan man låta timern visa en ny bild där, t ex:
 
raekneverk=0;
 
function iljtimer4()
{
setTimeout("iljtimer4()",10)
raekneverk=raekneverk+1;
if(raekneverk==5) document.images.bildplats.src='bild5.gif'
if(raekneverk==5) {clearTimeout(min_timer)}
}

 
(Ska timern använas till att byta bilder bör man se till att förladda bilderna så att de snabbt kommer på plats. Se t ex exempel 62 om hur man gör det.)
 

Visa en ny HTML-sida efter en sekund? Så här kan man göra det:
 
function visa_ny_sida()
{
setTimeout("window.location='ny.html'",1000)
}

 

Om du placerar funktionen ovan mellan HEAD- och SCRIPT-taggar i en fil som heter old.html och anropar funktionen genom att använda följande BODY-tagg i samma fil
 
<BODY ONLOAD="
visa_ny_sida()">
 
så kommer alla som öppnar old.html att automatiskt komma till ny.html.
 

Om du klickar på den här länken kommer du till javaskriptexempel 62 om en halv sekund.
 
 
 
 

Sidan gjordes av
 
ilj
 
ilj@flowsim.se
 

 
Senast ändrad 17 maj 1998.
 
Den här sidan hör hemma i ett ramsystem hos:
http://www.flowsim.se