webForumDet fria alternativet

NS/Mozilla bugg?

Kontorsprogram

4 svar · 204 visningar · startad av Darren

Medlem sedan dec. 2002789 inlägg
Frågan#1

Ett litet problem med document.write funktionen under nämnda webbläsare... Kan någon testa koden nedan och se hur långt tid det tar innan sidan visas helt. Det scriptet skall göra är att skriva 100 rader med text...

Hos mig så skriver NS/Mozilla första raden och sedan är det stopp (IE fungerar utmärkt). Har även låtit NS och Mozilla vara igång under 1 timma och det var fortfarande bara första raden som visades.

<html>
<head>
<title>NS/Mozilla test...</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/javascript">
    function testFunc(){
        for (a = 1; a <= 100; a++){
            document.write("Bara ett litet test för NS/Mozilla... :" + a + "<br/>");	
    }
}
</script>
</head>

<body onload="testFunc()">
</body>
</html>
Medlem sedan dec. 20025 483 inlägg
#2

Pröva med att deklarera variabeln "a" explicit:

...
for([B]var[/B] a = 1...)
...

:)

Medlem sedan dec. 2002789 inlägg
#3

Tack Peter. Fungerar som det skall nu.

Trodde inte man var tvungen att deklarera variabler som används i for-loopar... Egentligen så deklareras den iom a = 1.

Kan du förklara lite mer om detta?

Medlem sedan dec. 20025 483 inlägg
#4

Om du inte deklarerar en variabel explicit med nyckelordet var, kommer denna att deklareras implicit; och variabler som deklareras implicit blir automatiskt globala.

I detta fallet är alltså variablen "a" en global variabel och är på så sätt inte en del av for-loopen. För att en variabel skall vara en del av loop-syntaxen behöver den alltså deklareras explicit.

:)

Medlem sedan dec. 2002789 inlägg
#5

Okidoki... Då vet jag det för nästa gång. :)

260 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)