17. august 2008 - 12:16
Der er
14 kommentarer og 1 løsning
to tidstagere
Hej eksperter! Jeg skal bruge et script med to tællere. Den ene skal tælle tiden som er brugt på den specifikke side (Der er flere specifikke sider). Den anden skal tælle tiden brugt på hele sitet (som holder sig i ét bobliotek). Begge i formatet: 00:00:00. De skal begge stoppe når man lukker browseren (selvfølgelig), og tælle videre når man loader siden... Så det skal vel laves med cookies? trækker det for mange tænder ud hvis det gemmer en cookie hvert sekund? Jeg har det med Javascript som med norsk; jeg kan sagtens læse og forstå det, men fatter hat, når det skal skrives :) Så håber I kan hjælpe. -René
Annonceindlæg fra Kingston Technology
17. august 2008 - 12:25
#1
<ole> Ja, det bør laves med cookies, men du bør ikke sætte en kage hvert sekund. Du må kunne nøjes med at sætte den på siden unload event =) /mvh </bole>
17. august 2008 - 12:41
#2
okay... kan man stole på at unload eventen altid bliver kørt når det er? Og er unload kommandoen godkendt af w3c? (jeg går ud fra 2 x ja når du foreslår det, men vil lige være sikker :)
17. august 2008 - 12:52
#3
Ja, den er standardiseret - og ja, den vil du godt kunne sætte en kage på =) beforeunload giver mere tid til afvikling af større scripts, men er ikke standardiseret - selvom den understøttes af 'de store' browsere
17. august 2008 - 14:53
#4
Jeg har prøvet at stykke noget sammen fra flere scripts, og prøvet 50+- forskellige ting, men kan ikke få skidtet til at virke. Hvad gør jeg galt? (er kun kommet til timeren)
<script type="text/javascript">
var hour = 0;
var min = 0;
var sec = 0;
function timer(){
distim = (hour < 10) ? "0"+hour : hour;
dismin = (min < 10) ? "0"+min : min;
dissec = (sec < 10) ? "0" + sec : sec;
document.all.tidlevel.innerText = distim + ":" + dismin + ":" + dissec;
if ( ++sec > 59){
sec = 0;
if ( ++min > 59){
min = 0;
}
document.all.tidlevel.innerText.setTimeout("timer()",1000)
}
</script>
...
<body onload="tidlevel()">
...
<td align="center" class="style6"><span id="tidlevel">00:00:00</span></td>
Hele koden findes på
http://www.remiz.dk/cryptophun/cryptophun.php
17. august 2008 - 15:03
#5
'<body onload="tidlevel()">' = '<body onload="timer()">'
17. august 2008 - 15:17
#6
<script type="text/javascript"> function timer(){ var oDate = new Date(), hour = oDate.getHours(), min = oDate.getMinutes(), sec = oDate.getSeconds(), distim = (hour < 10) ? "0"+hour : hour; dismin = (min < 10) ? "0"+min : min; dissec = (sec < 10) ? "0" + sec : sec; document.getElementById("tidlevel").firstChild.nodeValue = distim + ":" + dismin + ":" + dissec; if ( ++sec > 59){ sec = 0; if ( ++min > 59){ min = 0; } } setTimeout("timer()",1000) } window.onload = function() { timer() } </script>
17. august 2008 - 15:18
#7
njaahhh ... sådan: <script type="text/javascript"> function timer(){ var oDate = new Date(), hour = oDate.getHours(), min = oDate.getMinutes(), sec = oDate.getSeconds(), distim = (hour < 10) ? "0"+hour : hour, dismin = (min < 10) ? "0"+min : min, dissec = (sec < 10) ? "0" + sec : sec; document.getElementById("tidlevel").firstChild.nodeValue = distim + ":" + dismin + ":" + dissec; if ( ++sec > 59){ sec = 0; if ( ++min > 59){ min = 0; } } setTimeout("timer()",1000) } window.onload = function() { timer() } </script>
17. august 2008 - 15:20
#8
- og så kan du godt slette hele if-blokken, så timer funktionen bare ser sådan ud: function timer(){ var oDate = new Date(), hour = oDate.getHours(), min = oDate.getMinutes(), sec = oDate.getSeconds(), distim = (hour < 10) ? "0"+hour : hour, dismin = (min < 10) ? "0"+min : min, dissec = (sec < 10) ? "0" + sec : sec; document.getElementById("tidlevel").firstChild.nodeValue = distim + ":" + dismin + ":" + dissec; setTimeout("timer()",1000) }
17. august 2008 - 15:28
#9
den tæller og fungere, men den skal starte fra 00:00:00 :)
17. august 2008 - 15:47
#10
tillod mig at tilføje if'erne igen :) den her tæller op... var hour=0; min=0; sec=0; function timer(){ ++sec, distim = (hour < 10) ? "0"+hour : hour, dismin = (min < 10) ? "0"+min : min, dissec = (sec < 10) ? "0" + sec : sec; document.getElementById("tidlevel").firstChild.nodeValue = distim + ":" + dismin + ":" + dissec; setTimeout("timer()",1000) if ( sec > 59){ sec = 0; if ( min > 59){ min = 0; } } } så er det jo egentlig bare at smide var-hour, min, sec i en cookie... tror godt jeg selv kan klare, men vender lige tilbage hvis jeg får problemer. :)
17. august 2008 - 15:49
#11
Jeg tror, der er smartere måder at gøre det på, men er på vej ud af døren. Kikker måske på det senere ... hvis jeg husker det og får tid =)
17. august 2008 - 15:54
#12
olebole: det er bare i orden. tak for hjælpen indtil nu ihvertfald :) hov, var lidt hurtig før. Det her virker... var hour=0; min=0; sec=0; function timer(){ ++sec, distim = (hour < 10) ? "0"+hour : hour, dismin = (min < 10) ? "0"+min : min, dissec = (sec < 10) ? "0" + sec : sec; document.getElementById("tidlevel").firstChild.nodeValue = distim + ":" + dismin + ":" + dissec; setTimeout("timer()",1000) if ( sec > 58){ sec = -1; ++min; if ( min > 58){ min = 0; ++hour; } } }
19. august 2008 - 10:07
#13
var hour=0; min=0; sec=0; giver ikke mening. Det skal nok være: var hour=min=sec=0;
07. juni 2009 - 23:23
#14
Hov glemte da vist den her tråd. Sorry! Vil I ligge et svar?
23. september 2009 - 21:07
#15
Blip blop
Vi tilbyder markedets bedste kurser inden for webudvikling