30. juli 2003 - 15:26Der er
11 kommentarer og 1 løsning
Uønsket delay af innerHTML i loop
Hej, jeg sidder og arbejder på et lettere kompliceret DHTML script, og er stødt ind i et underligt problem. Jeg har noget kode i stil med dette (kun et simpelt eksempel for at vise ideen)
document.innerHTML += "Linie 1" ;
document.innerHTML += "Linie 2" ;
for ( i = 3 ; i <= 5 ; i++ ) { document.innerHTML += "Linie " + i ; }
document.innerHTML += "Linie 6" ;
Den skulle gerne udskrive noget i stil med
Linie 1 Linie 2 Linie 3 .... og så videre
Istedet tager den sidste linie og flytter op før mit loop, så resultatet bliver :
Linie 1 Linie 2 Linie 6 Linie 3 Linie 4 Linie 5
Det ser mildest talt underligt ud, og jeg har ingen ide om hvorfor den ville gøre det. Er der en eller anden skjult detalje omkring innerHTML jeg ikke kender til, eller er det en bug i Mozilla (har ikke lige haft mulighed for at teste det i andet end Mozilla)... Håber nogen kan forklare dette fænomen for mig.
Med ovenstående ville den hverken i Mozilla 1.5, IE eller Stone's interne skrive nogetsomhelst ...
Men som du kan se prøvede jeg også med elementet g (div'en) -- og så fungerede det upåklageligt i allesammen -- du må ha' forsimplet for meget -- evt. overset noget !-)
Ja, det er muligt jeg har forenklet for meget, vil bare nødigt offentligtgøre for meget af min kode på nuværende stadie, så jeg håbede mit simple eksempel ville være nok... Her er en bid af min egentlige kode hvor problemet opstår...
document.body.innerHTML += '<div id="' + id + '_sel" class="cselect">' + id + '</div>' ;
document.body.innerHTML += '<div id="' + id + '_box" class="csbox">' ;
var options = sel.getElementsByTagName( 'option' ) ;
for ( x = 0 ; x < options.length ; x++ ) { var option = options[x] ;
Ja OK, det virker :) Men er det ikke lige lovlig ressource krævende? Jeg mener, mit script vil i forvejen blive lige lovlig tungt, og vil nødigt gøre det værre end nødvendigt.
-- det er faktisk den metode som anbefales ved document.write, da det er meget ressorcekrævende at udføre selve write-operationen -- det ville da overraske mig meget hvis det var lige omvendt med innerHTML !-)
Glæder mig også selv til at se hvordan det ender med at se ud :) Min nuværende version er så elendig at arbejde med, at selv jeg ikke ville kaste mig ud i opgaven, og jeg tror også jeg flere gange har lovet at få bikset en ny version sammen... Bedre sent end aldrig siger man jo :)
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.