Avatar billede ravnborg Nybegynder
15. august 2006 - 18:20 Der er 8 kommentarer og
1 løsning

Omskriv Script så den viser millisekunder.

Jeg har fundet dette script her på eksperten.

Jeg vil gerne have lavet det sådan at scriptet viser millisekunder istedet for tid
Nu viser den f.eks.  00:05:23  det vil jeg gerne have kun som millisekunder. Altså et stort tal, ikke delt op i msek,sek,min,timer.

Hvordan gør man det?

<script type="text/javascript">
s = 0;
m = 0;
t = 0;
function tid(){
    sek = s;
    if (s < 10) sek = '0' + s;
    min = m;
    if (m < 10) min = '0' + m;
    tim = t;
    if (t < 10) tim = '0' + t;
    document.formen.tid.value = tim + ':' + min + ':' + sek;
    s = s + 1;
    if (s > 59){
        s = 0;
        m ++;
    }
    if (m > 59){
        m = 0;
        t ++;
    }
    if (t > 99){
        t = 0;
    }
    setTimeout("tid()",1000)
}

</script>
Avatar billede nielle Nybegynder
15. august 2006 - 18:38 #1
Et bud:

<script type="text/javascript">
s = 0;
m = 0;
t = 0;

function tid()
{
    ms = t;

    ms *= 60;
    ms += m;

    ms *= 60;
    ms += s;

    ms *= 1000;

    document.formen.tid.value = ms;
    s = s + 1;
    if (s > 59){
        s = 0;
        m ++;
    }
    if (m > 59){
        m = 0;
        t ++;
    }
    if (t > 99){
        t = 0;
    }

    setTimeout("tid()",1000)
}
</script>
Avatar billede nielle Nybegynder
15. august 2006 - 18:39 #2
... eller bare:

<script type="text/javascript">
ms = 0;

function tid()
{
    document.formen.tid.value = ms;

    ms += 1000;

    setTimeout("tid()",1000)
}
</script>
Avatar billede ravnborg Nybegynder
15. august 2006 - 18:46 #3
SUPER...
Opret du bare et svar.

mange tak
Ravnborg
Avatar billede ravnborg Nybegynder
15. august 2006 - 18:49 #4
Hov der var jeg lige hurtig nok...

Kan man ikke også få den til at tælle millisekunderne med?
Avatar billede nielle Nybegynder
15. august 2006 - 18:57 #5
Lige nu tick'er den i intervaller af 1 sekund. Du kan sagtens sætte den til mindre end det, men jo mindre du sætter den ned, des mere æder den af din browsers resourcer.

"Tick" interval på 13 ms:

function tid()
{
    document.formen.tid.value = ms;
    ms += 13;
    setTimeout("tid()",13)
}
</script>
Avatar billede ravnborg Nybegynder
15. august 2006 - 19:33 #6
ok. på den måde :-)

Så kører den som den skal.

vh
Ravnborg

ps. opret lige et svar
Avatar billede nielle Nybegynder
15. august 2006 - 19:46 #7
Svar :^)
Avatar billede mclemens Nybegynder
15. august 2006 - 21:47 #8
13ms er ikke så heldigt... et link som jeg faldt over ved søgning en dag jeg havde bøvl med en lav timeout og så lige et eksempel.... (blot for at vise at ms defineringen ikke er skudsikker)

http://www.howtocreate.co.uk/tutorials/javascript/timers




<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<style type="text/css">

</style>

<script type="text/javascript">
s = 0;
m = 0;
t = 0;

function tid()
{
    ms = t;

    ms *= 60;
    ms += m;

    ms *= 60;
    ms += s;

    ms *= 1000;

    document.formen.tid.value = ms;
    s = s + 1;
    if (s > 59){
        s = 0;
        m ++;
    }
    if (m > 59){
        m = 0;
        t ++;
    }
    if (t > 99){
        t = 0;
    }

if(ms!=13000)setTimeout("tid()",1000)
}



s2 = 0;
m2 = 0;
t2 = 0;

function tid2()
{
    ms2 = t2;

    ms2 *= 60;
    ms2 += m2;

    ms2 *= 60;
    ms2 += s2;

    ms2 *= 1000;

    document.formen.tid2.value = ms2;
    s2 = s2 + 1;
    if (s2 > 59){
        s2 = 0;
        m2 ++;
    }
    if (m2 > 59){
        m2 = 0;
        t2 ++;
    }
    if (t2 > 99){
        t2 = 0;
    }

if(ms!=13000)setTimeout("tid2()",13)
}
window.onload=function(){tid();tid2();};
</script>

</head><body>
<form name="formen">
Ved 13 sekunder skal tæller to stå på (13000000/13=10000000)<br>
<input type="text" name="tid"><br><input type="text" name="tid2"></form>
</body></html>
Avatar billede mclemens Nybegynder
15. august 2006 - 22:03 #9
Ses sikkert nemmest med:

if(ms!=13000)setTimeout("tid()",1000)

rettet til

if(ms!=10000)setTimeout("tid()",1000)

i første script og i andet script:

if(ms!=13000)setTimeout("tid2()",13)

rettet til

if(ms!=10000)setTimeout("tid2()",100)

... nu skulle første input felt have værdien 10000 og andet input felt så have værdien 100000 (løkken skulle løbe 10 gange i funktion 2 for hvert sekund der går - altså 100ms.) resultatet jeg fik i IE 6.0 med sidste udgave var 92000 - så IE har svært ved at håndtere den timeout præcis. Firefox giver mig 93000 ...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester