09. august 2004 - 11:51Der er
6 kommentarer og 1 løsning
Modsat setTimeout.
Når man nu kan kalde en funktion efter en tid med onload="setTimeout('funktionxx()',10000);" kan man så ikke også standse den istedet efter 10 sek. Den skal gerne virke i de 10 første sekunder og så disables.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
-- hvis du mener, at du skal køre en funktion med intervaller i 10 sekunder og så skal stoppe den starter du bare med at tildele den til en variabel, og så stopper du den ved at kalde clearTimeout:
intervalId = setInterval('funktion()',100);
-- og når de 10 sekunder er gået:
clearInterval(intervalId);
-- hvis du har en javascript-funktion, som looper rundt i noget, og du vil have den til at loope uendeligt indtil de 10 sekunder er gået, skal vi over i den boldgade erikjacobsen har fat i:
var endTime = null; function skalstandses(){ endTime = new Date().getTime() + 10000; while (....) { if(new Date().getTime()>endTime)return; //resten af funktionen ... } }
Ok. Det var mange gode indfald. Jeg har testet med følgende script, som er en snake. <SCRIPT LANGUAGE="JavaScript"> <!-- Begin var x, y; var step = 10; var flag = 0;
var message = " tester "; message = message.split(""); var xpos = new Array(); for (i = 0; i <= message.length - 1; i++) { xpos[i] = -50; } var ypos = new Array(); for (i = 0; i <= message.length - 1; i++) { ypos[i]= -50; } function handlerMM(e) { x = (document.layers) ? e.pageX : document.body.scrollLeft + event.clientX; y = (document.layers) ? e.pageY : document.body.scrollTop + event.clientY; flag = 1; } function makesnake() { if (flag == 1 && document.all) { for (i = message.length - 1; i >= 1; i--) { xpos[i] = xpos[i - 1] + step; ypos[i] = ypos[i - 1]; } xpos[0] = x + step; ypos[0] = y; for (i = 0; i < message.length - 1; i++) { var thisspan = eval("span" + (i) + ".style"); thisspan.posLeft = xpos[i]; thisspan.posTop = ypos[i]; } } else if (flag==1 && document.layers) { for (i = message.length - 1; i >= 1; i--) { xpos[i] = xpos[i - 1] + step; ypos[i] = ypos[i - 1]; } xpos[0] = x + step; ypos[0] = y; for (i = 0; i < message.length - 1; i++) { var thisspan = eval("document.span" + i); thisspan.left = xpos[i]; thisspan.top = ypos[i]; } } var timer = setTimeout("makesnake()", 10); } // End --> </script> <body onload="setTimeout('makesnake()',10000);" style="OVERFLOW-X: hidden; OVERFLOW-Y: scroll; WIDTH: 100%">
<SCRIPT LANGUAGE="JavaScript"> <!-- Begin for (i = 0; i <= message.length-1; i++) { document.write("<span id='span"+i+"' class='spanstyle'>"); document.write(message[i]); document.write("</span>"); } if (document.layers) { document.captureEvents(Event.MOUSEMOVE); } document.onmousemove = handlerMM; // End --> </script>
</body </html>
Den kunne jeg tænke mig kun skulle køre i 10 sekunder.
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.