Heim > Artikel > Web-Frontend > Paging-Anzeige Super-Speed-Version_Erfahrungsaustausch
Wie wir alle wissen, stellt ASP selbst die Paging-Funktion bereit. Wenn die Datenmenge jedoch groß ist und die Paging-Funktion angezeigt wird, muss man bei jedem Seitenwechsel lange warten . Warum dauert es also so lange, eine Seite zu wechseln? Tatsächlich ruft der Hintergrund jedes Mal, wenn eine Seite geändert wird, Daten aus der Datenbank ab. Daher ist die Datenmenge groß und die Geschwindigkeit natürlich langsam. Wir können sehen, dass es viele sich wiederholende Aufgaben erledigt hat. Nur ein einziger Datenabruf reicht aus, da die Daten nicht manipuliert wurden und die Ergebnisse immer gleich sind, egal wie oft sie abgerufen werden. Unser Ziel ist es, die Anzahl wiederholter Suchvorgänge auf ein oder zwei Mal zu reduzieren. Die Methode lautet: Speichern Sie die abgerufenen Daten (Sie können beispielsweise nach erfolgreicher Anmeldung die gewünschten Daten im Hintergrund abrufen, die abgerufenen Daten als Array in der Sitzung speichern und dann zu der Seite springen, auf der Sie sie anzeigen möchten Daten), Natürlich kann die Sitzungsvariable zum Speichern verwendet werden (es scheint, dass sie nicht mit Cookies gespeichert werden kann), aber ich weiß, wie hoch die Grenze ist. Wenn die Datenmenge so groß ist, dass die Sitzungsvariable überläuft Es gibt nichts, was ich tun kann. Lassen Sie uns ohne weitere Umschweife erklären, wie man Daten speichert.
Zuerst müssen Sie Daten aus der Datenbank lesen. Es wird empfohlen, gespeicherte Prozeduren zum Lesen zu verwenden
Setzen Sie cmd = Server.CreateObject("ADODB.Command")
Mit cmd
. ActiveConnection=conn
.CommandType =&H0004 'Store Procedure
.CommandText="guestbookpro"
End With
Dim resultRS, resultArray
Set resultRS = cmd.Execute(, Null)
Wenn nicht resultRS.EOF Then
resultArray = resultRS.GetRows()
End If
Set resultRS = Nothing
Set cmd = Nothing
session("arr")=resultArray
Haha , die Daten wurden gelesen, als nächstes ist es an der Zeit, die Daten seitenweise anzuzeigen. .
Seite----Aktuelle Seite
vonSeite----Die Startposition der Aufnahme der Seite
Topage-----Die Endposition der Aufnahme der Seite
Seitengröße----Die Anzahl der auf jeder Seite angezeigten Datensätze
n---Gesamtzahl der Datensätze
yushu-----Anzahl der Datensätze auf der letzten Seite
resultArray=session("arr")
n= UBound(resultArray,2)+1
pagesize=5
'response.write "
'response.write ""
yushu =n mod pagesize
if yushu= 0 then
totalpage=fix(n/pagesize)
else
totalpage=fix(n/pagesize)+1
End If
If request ("page")="" Then
page=1
Else
page=Int(request("page"))
End if
If page>totalpage Then
page =1
End If
If pagepage=totalpage
End If
frompage=(page-1)*pagesize
topage=frompage+pagesize-1
if yushu=0 then
frompage=(page-1)*pagesize
topage=frompage+pagesize-1
else
frompage=(page-1)* pagesize
topage=frompage+pagesize- 1
If page=totalpage Then
frompage=(page-1)*pagesize
topage=frompage+yushu-1
End if
end Wenn
Etwas nicht stimmt, geben Sie mir bitte Ihren Rat
Demo-Adresse: http://fishbone31.w3.zccn.net
Meine Website aktualisiert die gesamte Seite, da die vorherigen und nächsten Seiten aktualisiert werden, anstatt sie zu lesen die Datenseite [body. asp], daher ist die Geschwindigkeit nicht ideal.
Das Konto und das Passwort sind beide Test