Avatar billede mathiasrav Nybegynder
10. januar 2004 - 12:09 Der er 7 kommentarer og
1 løsning

Out of memory at line 29 i simpelt ur-script?!

Hej eksperter...
Jeg vil lave mit eget tekst-ur der viser serverens tid... Jeg får bare "Out of memory" på linien
    document.getElementById("hour").innerHtml=hour;
i scriptet:

<script type="text/javascript" language="JavaScript">
<!--
var hour = <%= Hour(Now) %>;
var minute = <%= Minute(Now) %>;
var second = <%= Second(Now) %>;

function countSecond(){
  second++;
  if(second>=60){
    second-=60;
    minute++;
  };
  if(minute>=60){
    minute-=60;
    hour++;
  };
  if(hour>=24){
    hour-=24;
  };
  document.getElementById("hour").innerHtml=hour;
  document.getElementById("minute").innerHtml=minute;
  document.getElementById("second").innerHtml=second;
};

function counter(){
  countSecond();
  setTimeout(1000, counter());
};
-->
</script>
</head>
<body onload="counter()">

Hvad sker der?!
Se det online på www.mrside.dk/test3.asp

Hilsen Mathias
Avatar billede tefcke Nybegynder
10. januar 2004 - 12:17 #1
Det er lang tid siden jeg har leget med javascript, men setTimeout udførses vist hver tidstinterval. Hvis du så laver dun funktion rekursiv, så er det klart du løber tør for hukommelse
Avatar billede roenving Novice
10. januar 2004 - 12:17 #2
function counter(){
  countSecond();
  setTimeout('counter()',1000);
};
Avatar billede roenving Novice
10. januar 2004 - 12:23 #3
-- men du skal ikke regne med en større præcision ...

-- allerede efter få minutter vil du have risiko for en afvigelse, da javascript-implementationen kan være afhængig af processer i styresystemet ...

-- det er forøvrigt svært at hjælpe, når du efterlader debug-kode, som forhindrer en afsøgning af problemet !-)
Avatar billede erikjacobsen Ekspert
10. januar 2004 - 12:25 #4
Kig evt på setInterval-funktionen. Den sætter du i gang een gang
Avatar billede mathiasrav Nybegynder
10. januar 2004 - 12:32 #5
roenving: Jeg fandt ud af det selv på msdn, det med '' uden omkring. Det virker nu, men vil du ha' point?
Avatar billede roenving Novice
10. januar 2004 - 12:33 #6
-- ja, den tænkte jeg også på, for den ville alt andet lige være en anelse mere præcis, da den så ikke behøver at afvente udførelsen af countSecond() !-)

Altså i stedet:

<body onload="setInterval('countSecond()',1000">
Avatar billede roenving Novice
10. januar 2004 - 12:49 #7
-- vigtigere var parametrenes rækkefølge !-)

-- men velbekomme '-)
Avatar billede roenving Novice
14. januar 2004 - 00:48 #8
-- og tak for points ;~}
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