Hej,
jag håller på med en enkel databas till mina CD-skivor. Det går fint förutom att när man skall visa alla skovar (för tillfället 181 st inladga) så tar det väldigt lång tid att hämta listan.
Så här ser min kod ut (tagit bort massa HTML):
<!-- #include file="adovbs.inc" -->
<% Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("cdskivor.mdb"))
Set RecSet = Server.CreateObject("ADODB.Recordset")
%>
<% Visabook = "SELECT * FROM album ORDER BY artist"
RecSet.Open Visabook, Connect, adOpenStatic, adLockOptimistic
%>
MASSA HTML
<%
Dim nummer
nummer = 1
Do Until RecSet.EOF
%>
<% response.write(nummer) %>.</td>
<a href='<% =RecSet("url") %>' target="_blank"><%=RecSet("artist")%></a></td>
<%=RecSet("title")%>
<%=RecSet("format")%>
<%=RecSet("extra")%>
<%
nummer = nummer + 1
RecSet.MoveNext
Loop
RecSet.Close
%>
Ser någon några saker som kan medför att det går sakta eller är det helt enkelt acceptabelt när man ska hämta 181 st objekt?
Det tar upp till 30 sek att hämta och det när jag kör lokalt!
ta bort alla <% %>, eller iallafall så många som möjligt, och använd istället Response.Write. Varje gång du öppnar en asp -tagg så tar den kräm från servern
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open("provider=microsoft.jet.oledb.4.0; data source ="& Server.MapPath("cdskivor.mdb"))
Visabook = "SELECT * FROM album ORDER BY artist"
Set recset = Connect.execute(visabook)
%>
MASSA HTML
<%
Dim nummer
nummer = 1
While not RecSet.EOF
response.write(nummer) &".</td>"&_
"<a href='"& RecSet("url") &"' target="_blank">"&_
RecSet("artist") &"</a></td>"& RecSet("title") & RecSet("format") &_
RecSet("extra")
nummer = nummer + 1
RecSet.MoveNext
Wend
RecSet.Close
Set RecSet = Nothing
%>
Testa att använda dig utav GetRows, vet inet om det snabbar upp så jättemycket men det känns snabbare.
Sen kan du använda Response.Buffer = True och Option Explicit men då måste du dim:ma alla variabler. Det kanske itne snabbar upp hämtningen från databasen så mycket men det snabbar upp "köringen" på sidan
Att det är onödig HTML vet jag men jag tror inte att det hade så mycket med saken att göra. Ett stylesheet snabbar bara upp marginellt.
Jag har följt några av era råd med tillfredsställande resultat. Nu går det snabbare. Så här ser det ut nu:
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open("provider=microsoft.jet.oledb.4.0; data source ="& Server.MapPath("cdskivor.mdb"))
Visabook = "SELECT * FROM album ORDER BY artist"
Set recset = Connect.execute(visabook)
%>
MASSA HTML
<%
Dim nummer
nummer = 1
While not RecSet.EOF
response.write "<td width='25' valign='top'>" & (nummer) &".</td>"&"<td width='183' valign='top'>"&_
"<a href='"& RecSet("url") &"' target='_blank'>"&_
RecSet("artist") &"</a></td><td width='349' valign='top'>"& RecSet("title") & "</td> <td width='123' valign='top'>" & RecSet("format") & "</td></tr>"&_
"<tr><td colspan='4'><i>" & RecSet("extra")& "</i></td></tr><tr><td colspan='4'> </td></tr>"
nummer = nummer + 1
RecSet.MoveNext
Wend
RecSet.Close
Set RecSet = Nothing
%>
Rätt mycket <td> och <tr> taggar men det är nog ett måste. Eller kanske inte ett måste men sidan är ju för mitt eget bruk så det är inte så viktigt att koden är snygg. Dessutom blir jag vansinning på dreamweaver som ändrar koden så fort jag öppnar sidan i den.
Kanske består även en del av problemet av att jag sitter med Telias ADSL som inte funkar så bra här där jag bor (de har de erkänt).