04. november 2000 - 14:19Der er
13 kommentarer og 2 løsninger
Array funktion låser
Flg function er lavet for at vise et array som tekststreng:
Array.prototype.toStr = function() { var strJS = \"[\"; for (i=0;i<this.length;i++) { if (i>0) strJS += \",\"; if (this[i].constructor != Array) strJS += \"\'\"+this[i]+\"\'\"; else strJS += this[i].toStr(); } strJS += \"]\"; return strJS; }
Funktionen virker fint med array af strenge, men når den kaldes med et array, hvis elementer selv er arrays af strenge, kommer der ingen fejl, men scriptet låser totalt.
Det er egentlig meningen at funktionen skal bruges til at overføre arrays i server-side script til client-side script, men den har samme resultat på serveren som browseren - den låser eller crasher dem.
istedet for at referere til this, hvorfor laver du så ikke din toStr funktion med en parameter. Jeg ved ikke om det er det, men det kan gøre det en hel del mere overskueligt når man forsøger at håndkøre skidtet. Mest fordi at din rekursivitet også referere til this....
Har du ellers prøvet at udskrive undervejs, altså sætte lidt response.write ind hist og her, for hvis browseren går i uendelig løkke så vil du får et lille praj om hvor det er....
<body> <% strJS = \"\" dim i dim temp function printarray(myarray) temp = i i = 0
strJS = strJS & \"[\"
while i < Ubound(myarray,1) if (i > 0) then strJS = strJS & \",\" end if if ( IsArray(myarray(i)) ) Then printarray myarray(i)
else
strJS = strJS & \"\'\" & myarray(i) & \"\'\"
end if i = i + 1 wend strJS = strJS & \"]\" i = temp end function %> <% dim test(3) dim tast(2) dim tist(2) dim tyst(2) tast(0) = \"a\" tast(1) = \"b\" tist(0) = \"c\" tist(1) = \"d\" tyst(0) = \"e\" tyst(1) = \"f\"
Ja det er rigitgt, men det er ikke det der får scriptet til at time out. Det gør bare at man ikke kan forudsige om funktionen kører til ende.... Det er også derfor at jeg har indsat min temp variabel.
Tak, det var virkelig nogle gode svar fra Jakoba og kasseper, jeg nåede desværre først at se svarene idag, så det er først nu jeg kan kvittere ;-)
Synes godt om
Ny brugerNybegynder
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.