/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Håndtering af monster mange data på en web~
Fra : Joe


Dato : 17-02-11 03:16

Hej alle.

Hvis jeg har en webside, der læser fra en database, og disse data
svare til cirka 30-50MB, hvordan får jeg så optimalt vist dem på
websiden?

Som jeg gør det p.t. laver jeg en helt simpel gennemgang, hvor jeg
lister linie for linie i en tabel - og så er det jo op til browseren,
hvordan den vil smide outputtet. Men kan jeg evt. optimere det ved at
hælde det hele ind i et array, lave tabellen og så en flush eller
måske lave det på en helt anden måde (CSS)?

Det køre i hvert fald ret langsomt nu - og ja, jeg har brug for alle
de data og måske ér der ingen god løsning på det.

PS: Jeg har kørt diverse weboptimeringer (billeder/CSS caches m.v.) og
får en fin score der, så mit spørgsmål går mere på hvordan jeg gør det
grundlæggende.

 
 
Jørn Andersen (17-02-2011)
Kommentar
Fra : Jørn Andersen


Dato : 17-02-11 14:22

On Thu, 17 Feb 2011 02:16:23 -0800 (PST), Joe <joespam8@gmail.com>
wrote:

>Hvis jeg har en webside, der læser fra en database, og disse data
>svare til cirka 30-50MB, hvordan får jeg så optimalt vist dem på
>websiden?

I de fleste tilfælde har man ikke brug for at vist *alle* data
samtidigt, så det første jeg ville gøre er at lave nogle søge- eller
filterkriterier, som giver mulighed for kun at få vist *relevante*
data.

Hvis du vil vise alle data samtidigt, så vil det tage tid. Så prøv at
undgå det.

Evt. kan du sideopdele dine data, så du fx viser 100 records ad gangen
- søg "ASP paging" på Google, så finder du nok svar på hvordan.

>Som jeg gør det p.t. laver jeg en helt simpel gennemgang, hvor jeg
>lister linie for linie i en tabel - og så er det jo op til browseren,
>hvordan den vil smide outputtet. Men kan jeg evt. optimere det ved at
>hælde det hele ind i et array, lave tabellen og så en flush eller
>måske lave det på en helt anden måde (CSS)?

Du kan hælde et recordset over i et array med .GetRows-metoden - se
fx:
<url: http://www.w3schools.com/ado/met_rs_getrows.asp>
Eller søg "ASP GetRows" eller "ADO GetRows".

Det vil typisk være hurtigere at hente hele recordsettet over i et
array, lukke forbindelsen til databasen og så udskrive fra arrayet
frem for fra recordsettet - men hvor meget hurtigere tør jeg ikke byde
på.

>Det køre i hvert fald ret langsomt nu - og ja, jeg har brug for alle
>de data og måske ér der ingen god løsning på det.

Er din database indekseret?
Er din SQL optimeret, så du kun henter de data, du har brug for?

>PS: Jeg har kørt diverse weboptimeringer (billeder/CSS caches m.v.) og
>får en fin score der, så mit spørgsmål går mere på hvordan jeg gør det
>grundlæggende.

Good luck,
Jørn

--
Jørn Andersen
socialister.dk
marxisme.dk

Peter Lykkegaard (18-02-2011)
Kommentar
Fra : Peter Lykkegaard


Dato : 18-02-11 08:49

Joe skrev

> Hvis jeg har en webside, der læser fra en database, og disse data
> svare til cirka 30-50MB, hvordan får jeg så optimalt vist dem på
> websiden?
>
Det kan du ikke

Kan din målgruppe overskue de data mængder lynhurtigt?
Hvis ja så er jeg imponeret hvis ikke så skal du ændre designet efter
Jørns anvisninger

Alt efter database så er der forskellige metoder til at hente data
hvis man vil bruge paginering (indeling i x antal sider)
Alternativt kan man hente data løbende vha ajax kald eller lign

- Peter

Søg
Reklame
Statistik
Spørgsmål : 177414
Tips : 31962
Nyheder : 719565
Indlæg : 6407847
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste