Maison  >  Article  >  interface Web  >  Affichage de la pagination version super rapide_Échange d'expérience

Affichage de la pagination version super rapide_Échange d'expérience

WBOY
WBOYoriginal
2016-05-16 12:09:331395parcourir

Comme nous le savons tous, asp lui-même fournit la fonction de pagination. Cependant, si la quantité de données est importante et que la pagination est affichée, vous devez attendre longtemps à chaque fois que vous changez de page. . Alors pourquoi faut-il autant de temps pour changer de page ? En fait, chaque fois qu'une page est modifiée, l'arrière-plan récupère les données de la base de données. Par conséquent, la quantité de données est importante et la vitesse est naturellement lente. Nous pouvons voir qu’il a effectué de nombreuses tâches répétitives. Une seule récupération de données suffit, car les données n'ont pas été manipulées et les résultats seront les mêmes quel que soit le nombre de fois qu'elles seront récupérées. Notre objectif est de réduire au minimum le nombre de recherches répétées, 1 ou 2 fois. La méthode est la suivante : enregistrez les données récupérées (par exemple, vous pouvez récupérer les données souhaitées en arrière-plan après vous être connecté avec succès, enregistrez les données récupérées sous forme de tableau dans la session, puis accédez à la page où vous souhaitez afficher le data), Bien sûr, la variable de session peut être utilisée pour la sauvegarder (il semble qu'elle ne puisse pas être enregistrée à l'aide de cookies), mais je sais quelle est sa limite si la quantité de données est si importante que la variable de session déborde, alors. je ne peux rien faire. Sans plus attendre, expliquons comment sauvegarder les données ?
Tout d'abord, vous devez lire les données de la base de données. Il est recommandé d'utiliser des procédures stockées pour lire
Set cmd = Server.CreateObject("ADODB.Command")
Avec cmd
. ActiveConnection=conn
.CommandType =&H0004 'Store Procedure
.CommandText="guestbookpro"
Fin avec
Dim resultRS, resultArray
Set resultRS = cmd.Execute(, Null)
If Not resultRS.EOF Then
resultArray = resultRS.GetRows()
End If
Set resultRS = Nothing
Set cmd = Nothing
session("arr")=resultArray
Haha , les données ont été lues, ensuite il est temps d'afficher les données en pages. .
page----Page actuelle
frompage----La position d'enregistrement de début de la page
topage-----La position d'enregistrement de fin de la page
pagesize----La nombre d'enregistrements affichés sur chaque page
n---Nombre total d'enregistrements
yushu-----Nombre d'enregistrements sur la dernière page
resultArray=session("arr")
n= UBound(resultArray,2)+1
pagesize=5
'response.write "alert('"&n&"')"
'response.write ""
yushu =n mod pagesize
if yushu= 0 alors
totalpage=fix(n/pagesize)
else
totalpage=fix(n/pagesize)+1
Fin si
Si demande ("page")="" Puis
page=1
Else
page=Int(request("page"))
Fin si
Si page>totalpage Alors
page =1
Fin Si
Si pagepage=totalpage
Fin Si
frompage=(page-1)*pagesize
topage=frompage+pagesize-1
si yushu=0 alors

frompage=(page-1)*pagesize
topage=frompage+pagesize-1
else

frompage=(page-1)* pagesize
topage=frompage+pagesize- 1
Si page=totalpage Alors
frompage=(page-1)*pagesize
topage=frompage+yushu-1
Fin si
fin Si
Quelque chose ne va pas, donnez-moi votre conseil
Adresse de démonstration : http://fishbone31.w3.zccn.net
Mon site Web actualise la page entière car les pages précédentes et suivantes sont actualisées au lieu d'être lues la page de données [body asp], donc la vitesse n'est pas idéale.
Le compte et le mot de passe sont tous deux testés

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn