OyvindN Skrevet 10. mars 2009 Del Skrevet 10. mars 2009 JAVASCRIPT function b(){ wait(2000); document.getElementById("knapp").value="hihi"; wait(2000); document.getElementById("knapp").value="haha"; } HTML <input type="button" id="knapp" value="hallo" onclick=b()> "hihi"-verdien vises ikke her. Den venter 4 sek på å vise "haha". Hvordan skrive det annerledes? Lenke til kommentar
JohndoeMAKT Skrevet 10. mars 2009 Del Skrevet 10. mars 2009 (endret) <html> <head> <script type="text/javascript"> function noe() { setTimeout( function() { document.getElementById( 'knapp' ).value = 'hihi'; }, 2000 ); setTimeout( function() { document.getElementById( 'knapp' ).value = 'fisk'; }, 4000 ); } </script> </head> <body> <input type="button" id="knapp" value="hallo" onclick="noe();"> </body> </html> Her er dagens tips: Alltid gjør webutvikling i Firefox med Firebug extension. Alt annet er bortkastet tid. Endret 10. mars 2009 av JohndoeMAKT Lenke til kommentar
OyvindN Skrevet 10. mars 2009 Forfatter Del Skrevet 10. mars 2009 Takker, setTimeout funket . Har firefug på, men ingen feil dukket opp. Lenke til kommentar
JohndoeMAKT Skrevet 10. mars 2009 Del Skrevet 10. mars 2009 Ok. Jeg regnet med at "wait" var en gammel IE-feature siden jeg ikke fant den i oppslagsverket jeg har her i nettleseren. Lenke til kommentar
OyvindN Skrevet 10. mars 2009 Forfatter Del Skrevet 10. mars 2009 function wait(msecs){ var start = new Date().getTime(); var cur = start while(cur - start < msecs){ cur = new Date().getTime(); } } Kom på at jeg glemte å ta med denne gitt. Ok. Jeg regnet med at "wait" var en gammel IE-feature siden jeg ikke fant den i oppslagsverket jeg har her i nettleseren. Lenke til kommentar
JohndoeMAKT Skrevet 10. mars 2009 Del Skrevet 10. mars 2009 Til det har jeg bare NEI å si. For det første vil IE avbryte scriptet etter 100 000 funksjonskall (eller noe slikt) og FF/Opera avbryte scriptet etter så og så mange sekunder og for det andre blir alt Javascript utført i én tråd som gjør at mens den saken kjøres vil alle andre script på siden ha vanskeligheter med å få CPU-tid. setTimeout fortsetter tråden med én gang og setter opp en asynkront kall til funksjonen du gir med som parameter. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå