21. oktober 2007 - 18:05Der er
32 kommentarer og 1 løsning
Overflow problem!
Hej eksperter!
Jeg er helt på røven med noget asp-kode, som tilsyneladende melder en stack-overflow fejl.
Problemet opstår fordi jeg viser en lang række billeder, som styres ud fra et sql-kald. Det skal forståes sådan, at når en bruger er logget ind, så er der lavet et sql-kald, som henter brugeres id. Dette id bruges til at kalde en ordentlig flok billeder (ca. 80). Så i bund og grund er billederne parameter bestemt ud fra brugerens id-nummer...
...men - den melder stack-overflow. Jeg har prøvet at fjerne nogle af billederne, og har fundet ud af at den cirka kan klare 25 billeder... men jeg skal gerne vise alle cirka 80 billeder.
Kan det løses på nogen måde?? Vil være super taknemmelig, hvis der er nogen som kan trylle lidt for mig.
Har du en nøjagtig fejlbeskrivelse, for det kan godt være bufferstørrelsen på internet serveren, der ikke kan klare det, og det kan man løse på flere måder enten ved at dele det op i flere sql kald eller at skrive det ud engang imellem med en Response.Flush (tror jeg den hedder)
Den med flere sql-kald dur ikke, for der er egentlig kun brug for et, og det er ikke der flaskehalsen er. Jeg tror det er fordi den skal bruge parametrene i alle billederne, og stack er for lille til at "huske" det i compile-time.
Får følgende fejl...
"Sun ONE ASP VBScript compilation (0x800A03EA) parser stack overflow"
Hmm, den var værre, jeg kender ikke Suns ASP og kan ikke rigtig finde noget på Google - så kan du evt. pinpointe hvilken kode linie der giver problemet?
Det kan godt være vi taler lidt forbi hinanden, for det jeg var ude efter er den linie i din kode der giver fejlen, du siger den kommer ved billede nr 22 - men du må have noget kode som der måske kan optimeres eller rettes lidt til på?
Fejlen er ikke i stien... har prøvet at bytte frem og tilbage mange gange, og har triple-tjekket alle links.
Jeg kan desværre ikke videre give den præcise source, da der ligger en hel klar aftale herom bag projektet.
Men det virker umiddelbart som om at den parser som "oversætter" asp'en har for lille en stack. Jeg har set at dette kan ændres hvis man eksempelvis skriver ind fra en form med nogle Script utilities, men det kan vel ikke benyttes i dette eksempel!??
Du snakkede om noget "flush" på et tidspunkt - hvad gør det`?
Normalt beregner serveren alle oplysningerne og samler hele HTML i en buffer, og når den er færdig sendes informationerne til klienten. Med flush kan man fortælle at den skal sende inden den er færdig.
Prøv at kør disse to koder hver for sig: response.write "Hej med " for f=0 to 1000000 next response.write "dig"
response.write "Hej med " response.flush for f=0 to 1000000 next response.write "dig"
Man bruger gerne flush på sider som har en lang load tid, eller som fylder mere end de 4 Mb som serverens buffer er på.
Det virker heller ikke med flush. Men der er vel heller ikke noget at "flushe", eftersom billederne er så vanvittigt små. De fylder ikke 2 Mb... Det må være fordi mængden af variabler den skal holde er for stor, er det ikke korrekt? - og det er jo ikke noget man kan flushe.
Slet ingen der har en idé til hvad der kan løse problemet??
sådan godt nestet ind i hinanden, så den vil du aldrig komme i og det ser for mig ud som en god gang gentagelser som du ikek lander i eller læser jeg det helt forkert?
Ja okay... så bogstaveligt skulle du ikke tage den... det er forskellige værdier. Har bare kopieret hver blok igen og igen... det er 62 forskellige tal.
Så der er ikke noget nested i det.
Ved godt det ikke er pænt med alle de if'er - det kunne også være case eller noget andet fint, men det gør vel ikke nogen forskel.
Hmm og dog, det kan være du simpelthen har for mange nestede if'er til at den kan blive ved med at fortilke det og så vil en select case gøre en forskel
Er også helt væk på den.. aner ikke hvad jeg skal gøre. Har aldrig oplevet den fejl før - for ja, mener også at koden skulle være fejlfri. Og den virker jo også fint med under 20 billeder.
Kan du/I afvilke dem??? (På en ikke Sun asp??).
Må lige prøve med cases, men ellers er I lige så blanke som mig??? :-/
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.