30. september 2003 - 12:42Der er
12 kommentarer og 2 løsninger
optimering af script
denne lille bid :-) tager en krig om at blive færdig på min server.
Hvad er det der tager så lang tid ? og hvad kan optimeres. Jeg skal bare have listet alle varer, og have mulighed for at slette dem og tilføje en ekstra tekst til en vare.
Tager det ekstra lang tid pga tabellen ? eller hvad går galt ?
Du har inde i en løkke et skift mellem "html-mode" og "asp-mode". Dette tager tid hver gang. Du kan overveje at undlade dette skift, og så putte en response.write på dine linier, der skal skrives ud. Dette vil muligvis give dig lidt.
medions> hvad mener du lige med 'tværimod'? Det tager rent faktisk serveren tid at skifte mellem ASP mode og HTML mode. Og gøres dette inden i et loop, vil det jo faktisk kunne blive hurtigere at undlade disse. I fald du ikke er enig med mig heri, må du meget gerne uddybe hvorfor...
Under linien med intID = rs("id") har du en %>. Væk med den. Under linen med </form> har du en <%. Væk med den. Alle html-linierne her imellem skal du have udskrevet. Det gør du ved at sætte dem i en response.write "<din linie her"
Vær dog opmærksom på, at hvis du har "er i linierne, fx på bgcolor="#FFFFFF" skal de så rettes til "" - altså to af dem
Som Rune siger: Der er ikke meget der kan optimeres, så at det kører langsomt må skyldes noget andet. bma man's forslag: i stedet for at skrive bla bla bla <%response.write(rs("nr")%> bla bla bla så skrive <%response.write("bla bla bla" & rs("nr") & "bla bla bla")%> jeg tror nu ikke det vil hjælpe meget.
the_bma_man> Det er nøjagtig det samme! Det jeg mener med tvært imod, er at det er dårlig programmeringsskik at kode HTML i ASP!
hanne-rk> Hvor mange records er der i din database og hvor hurtig er din server!? <- det kan have meget betydning for dit script, hvis der er mange records der skal loades kan du optrimere det ved at ligge dine poster ind i et Pageingsystem!
der er ca 2000 varer i databasen, men jeg har lige testet på min interne server, og der er en del forskel på den og på min netserver, er det min hoteludbyder der trænder til nyt hardware ?
(dog skal det siges at der også går ca. 15 sek. med min interne server, på nettet tager det ca. 45 sek.)
1) Hentning af data fra databasen, og 2) Udskrivning af siden.
Pagning vil ikke hjælpe synderligt hvis det er det første som er problemet. Recordsettet bliver nemlig under alle omstændigheder fyldt op med det samme, hvorefter at databasen ikke røres mere. Dog skal det nævnes at der altså findes hurtigere databaser end lige Access (f.eks. MySQL eller MS SQL).
Mht. 2) så er 2000 poster meget at skrive ud. Serveren burde nu alligevel nok kunne klare det uden de store problemer. MEN en side med 2000 poster er ret stor og tager også tid at overføre fra web-serveren til dig og din browser. Dette er i øvrigt den største ændring i forhold til at have siden liggende hos sig selv - den lange vej mellem server og browser.
Du kan nemt finde ud af om det er 1) eller 2) som er problemet; Lav en bogus side, som bare indeholder 2000 pseudo-poster - altså poster som ligner de rigtige, men er mere eller mindre hardcodet (måske med lidt randomize og rnd smidt ind i blandingen). Hvis denne side tager ligeså lang tid at præsentere, så er det 2).
Hvis det viser sig at være 2) som er problemet så er pagning en rigtig god løsning.
Dertil kommer det faktum at 2000 poster i sig selv er ret meget at skulle overskue, og at pagning OGSÅ er en god ide ud fra den vinkel!
->medions tak for forslaget med pageing, det er nok det jeg skal forske lidt i.
nielle -> tak for forklaringen, jeg prøvede at gemme et resultat, og det viste sig at filen fyldte 1,5mb, så det er helt sikkert her fejlen ligger. 1,5mb skulle jo så overføres inden jeg kan se resultatet, så mon ikke jeg skal lave et paging, eller opdale i flere undergrupper.
Det er nok den vej jeg skal gå.
Endnu en gang tak for hjælpen
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.