Settimeout käyttäytyy aika erikoisesti. Jos laitan ajaksi 18ms firefox ajaa funktiota nopeammin kuin IE, kun taas 15ms:lla nopeudet on aika samat, myös 100ms nopeudet aika samaa...koodi tossa:
<html> <head> </head> <body onkeypress="painettu(event)"> <div id='ajannaytto'> </div> <script type="text/javascript"> var aika=0; var alku=1; function painettu(e) { if (alku==1) {alku=0; aikalaskuri();} } //Start increasing vertical angle meter function aikalaskuri() { aika=aika+1; document.getElementById('ajannaytto').innerHTML = aika; kulmavlooppi=setTimeout('aikalaskuri()', 18); } </script> </body> </html>
edit: Jäi ylimääränen event/e tohon, mut tuskin niillä väliä...
Minusta oikea muoto olisi setTimeout(aikalaskuri, 18); Ainakaan "aikalaskuri()" ei toimi minulla Internet Explorerilla.
Saisit paremman tuloksen, jos kutsuisit setTimeoutia uudestaan heti funktion alussa, jotta ajastin lähtisi käyntiin jo ennen sivun päivittämistä. Toisaalta jos päivittäminen kestää yli tuon 18 millisekuntia, saat samalla myös selaimen jumittamaan.
Joka tapauksessa setTimeout ei ole mitään tietellisellä tarkkuudella tapahtuvaa ajastusta varten (ei myöskään setInterval). Jos aika kiinnostaa, lue se Date-oliolta kuten tässä esimerkissä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.