Spring til indholdet
Quaestio

Stopur

Tryk på Start, og tag omgangstider, mens uret går.

0.00,00

Mellemrum starter og stopper, L tager omgang, R nulstiller.

Indlejr

Indlejr værktøjet på dit website

Kopiér koden, og indsæt den, hvor værktøjet skal vises, f.eks. i et blogindlæg eller på en skoleside. Det er gratis, boksen har ingen annoncer, og værktøjet regner i den besøgendes browser.

Sådan virker det

Stopuret måler med browserens ur til målinger, performance.now(), og tæller ikke skærmopdateringer. Det ur påvirkes ikke, hvis computerens ur bliver stillet om, men undtagen på Windows står det stille, mens computeren sover, så tiden i dvale lægges til fra computerens almindelige ur. Tiden passer, selv om fanen ligger i baggrunden et stykke tid.

Omgangstiden er tiden siden sidste omgang, totalen er tiden fra start. Med mindst to omgange markeres den hurtigste og den langsomste.

Med tastaturet starter og stopper du med mellemrum, tager omgang med L og nulstiller med R, når uret står stille.

Hundrededelene viser, hvad uret målte, men et menneskes tryk har en reaktionstid på omkring to tiendedele sekund. Derfor tages tiden med fotoceller ved konkurrencer.

Sådan måler værktøjet

Stopuret aflæser to ure: browserens ur til målinger, performance.now(), og computerens almindelige ur, Date.now(). Ved hver aflæsning lægges tiden siden forrige aflæsning til den tid, der allerede er målt, også fra tidligere kørsler. Aflæsningen sker en gang pr. skærmbillede, en gang i sekundet eller så ofte, som browseren tillader, når fanen ligger i baggrunden, og straks, når fanen vises igen. Hundrededelene rundes ned: 65,437 sekunder vises som 1.05,43. Over en time kommer timerne først, som i 1.02.03,45.

En omgang gemmer totaltiden i det øjeblik, du trykker, og omgangstiden er forskellen fra den forrige omgang. Hver tid rundes ned for sig, så de viste omgangstider tilsammen kan blive en hundrededel kortere end totalen. Med omgange på 62,415 og 62,625 sekunder vises omgangstiderne 1.02,41 og 1.02,62, som tilsammen giver 2.05,03, mens totalen viser 2.05,04. Hurtigst og langsomst afgøres på de viste hundrededele. Vises alle omgange ens, markeres ingen af dem, og deler flere omgange den hurtigste eller den langsomste tid, markeres de alle.

Uret, der måler

W3C’s specifikation High Resolution Time beskriver performance.now() som et monotont ur: det går aldrig baglæns og kan ikke ændres, når systemuret justeres, og en browser, der kører timere langsommere i en fane i baggrunden, må ikke lade det påvirke urets nøjagtighed. Men ifølge MDN går det kun videre, mens computeren sover, i browsere på Windows. I Chrome, Firefox og Safari på andre systemer står det stille i dvale, og fejlen er meldt hos alle tre. Computerens almindelige ur, Date.now(), tæller dvalen med, men kan stilles om, for eksempel når det synkroniseres mod en tidsserver.

Stopuret regner derfor hvert skridt mellem to aflæsninger med performance.now(), undtagen når computerens ur er gået mere end to sekunder længere. Så har måleuret stået stille, mens computeren sov, og skridtet tages fra computerens ur. Et ur, der stilles tilbage, påvirker altså aldrig tiden, og en nat i dvale tælles med på alle systemer. Et ur, der stilles mere end to sekunder frem, mens stopuret går, tælles derimod som tid, der er gået, fordi det inde fra websiden ikke kan skelnes fra dvale.

Sammenlignet med tidtagning ved konkurrencer

World Athletics’ regler for atletik runder den anden vej. Ved håndtidtagning på bane rundes en tid, der ikke er hele tiendedele, op til næste tiendedel, så 10,11 sekunder bliver 10,2. Med målfoto rundes tider i løb til og med 10.000 meter op til næste hundrededel. Tiden 65,437 sekunder, som stopuret viser som 1.05,43, ville altså blive noteret som 1.05,44 med målfoto og 1.05,5 med håndtidtagning. Ved håndtidtagning tager tre tidtagere tid, og er alle tre uenige, gælder den midterste.

Kilder

Sådan kontrolleres værktøjerne