MengMedlem sedan feb. 2003549 inlägg Hej jag har en databas med nästan 20 fält och 987 poster på 8,4 Mb.
När man listar "hela" så tar det såklart lång tid. Finns det andra sätt än pagning att lösa detta på eftersom jag gärna vill ha allt på en lång sida. Eller kan man göra en mellan sidan där det står att databasen laddas och när detta är klart visas den, för det skulle vara bättre än att det bara är vitt tills den har laddad klart. En annan bra sak hade varit om den laddade alla posterna synligt, alltså man kan se när den skapar grafiken på skärmen för alla poster.
OBS! detta är ett intranet så de flesta ser sidan med 100 Mbit, inte alla dock..
Bild exempel på hur det ser ut nu är bifogat
OveRRidEMedlem sedan feb. 200112 078 inlägg Du kan 'flusha' den färdiga delen av sidan till klienten, säg var tionde runda (loop), eller varje ifall du nu vill det.
response.flush
Denna kod gör att servern skickar så mycket av HTML-sidan som den har hunnit processa klart när metoden anropas.
MengMedlem sedan feb. 2003549 inlägg Jaa det låter ju prima =) hur anväder jag det i koden då?
@ndersMedlem sedan juni 200032 969 inlägg Eh?
Du lägger kodbiten där du vill flusha bufferten till klienten?
MengMedlem sedan feb. 2003549 inlägg Provade i botten innan loop men det hade ju ingen effekt direkt..
<%
i = i + 1
[B]response.flush[/B]
dok.MoveNext
Loop
End If
End If
%>
PatrikBMedlem sedan mars 20002 836 inlägg behöver du visa alla fält på en gång?
Just 20 fält och 987 rader låter inte speciellt mycket.........dock lite datamängd att skicka till klienten.
Är det själva queryn som tar tid, eller är det skicket till klienten som tar tid?
/edit
Spars word-dokumenten i databasen?
Har du MS-SQL bör du i så fall se till att det fältet sparas till en egen fil. Varje tabell är ju kopplade till en "fil" på disken. I MS-SQL Server så kan man just dela tabellen i flera st olika filer.
När du sedan behöver lista ut tabellen så exkluderar man fältet som innehåller word-filen. På det sättet snabbar du upp queryn väsentligt
cya,
/PatrikB
MengMedlem sedan feb. 2003549 inlägg Nej Word filerna har inget med databasen eller visningen av innehållet i databasen att göra, det är blott ett länksystem med beskrivning av dokumenten och lite activex komponenter, men dessa används inte heller i listningen.
Det är en Access databas.
Ja det tar inte jätte lång tid att öppna sidan, men för mig på 100 Mbit tar det 5-6 sek och för dem nere i Kina t ex kan det ta upp till 2-3 minuter eftersom dem sitter på en 2 Mbit uppkoppling till oss.
Man laddar ofta om sidan eftersom man kan lista den efter namn, beskriving, revision nummer osv. så det skulle vara väldigt bra om det med flushen skulle fungera, alltså att man kan se när den laddar fram hela sidan, eller att man kommer till en mellan sida där det står att den laddas, Bästa där hade varit någon form för procent räknare eller blott en list som blir utfylld alltmed att sidan skapas.
Problemet om man flushar är att IE vill ha hela tabellen innan den ritar något.
Du skulle kunna ändra tabellstrukturen så typ efter var tionde fil så gör du en ny tabell och flushar. Typ så här:
Do While Not dok.EOF
If (i Mod 10) = 0 Then
Response.Write "<table>"
End If
%>
<tr>
<td>...</td>
</tr><%
If (i Mod 10) = 9 Then
Response.Write "</table>"
Response.Flush
End If
i = i + 1
dok.MoveNext
Loop
If (i Mod 10) <> 0 Then Response.Write "</table>"
Egentligen tror jag inte flushen spelar så stor roll eftersom att det som tar tid inte är för servern att arbeta, utan mer nerladdningstid/tid för IE att rendera.
Du skulle ju också kunna ha en ny tabell och flush för varje rad, men det känns onödigt...