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..
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
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...
2617 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2