手机
当前位置:查字典教程网 >网页设计 > Div+Css教程 >分页显示之超级提速版
分页显示之超级提速版
摘要:大家知道,asp本身提供分页功能,但是,如果数据量很大的时候,分页显示起来,每换一页都要等N长时间,那是人们最讨厌的事情。那为什么每换一页都...

大家知道,asp本身提供分页功能,但是,如果数据量很大的时候,分页显示起来,每换一页都要等N长时间,那是人们最讨厌的事情。那为什么每换一页都要这么长时间呢?其实,事实上每换一个页面,后台就从数据库中检索一次数据,这样一来数据量大了,自然速度缓慢。这当中我们可以看出它做了很多次重复的工作。数据的检索只要一次就够了,因为数据没被操作过,无论检索几次结果都是一样的。我们的目标就是要把这当中的重复检索次数减少到最少,1次或者2次。方法就是:把检索好的数据保存起来(比如你可以在登录成功后就在后台检索你要的数据,把检索出来的存为数组放入session,然后再跳转到要显示数据的页面),当然这里可以用session变量来保存(好像用cookie无法保存),不过我知道它的极限是多少,如果数据量大到使session变量溢出的话,那我也无计可施了。废话少说了,下面说明下怎么个保存数据法?

首先要从数据库读取数据,建议使用存储过程读取

Setcmd=Server.CreateObject("ADODB.Command")

Withcmd

.ActiveConnection=conn

.CommandType=&H0004'存储过程

.CommandText="guestbookpro"

EndWith

DimresultRS,resultArray

SetresultRS=cmd.Execute(,Null)

IfNotresultRS.EOFThen

resultArray=resultRS.GetRows()

EndIf

SetresultRS=Nothing

Setcmd=Nothing

session("arr")=resultArray

哈哈,数据已经读出,接下来就该对数据进行分页显示了。。

page----当前页

frompage----页面开始记录位置

topage-----页面结束纪录位置

pagesize----每页显示的记录条数

n---记录总数

yushu-----最后一页的记录数

resultArray=session("arr")

n=UBound(resultArray,2)+1

pagesize=5

'response.write"<scri"&"pt>alert('"&n&"')"

'response.write"</script>"

yushu=nmodpagesize

ifyushu=0then

totalpage=fix(n/pagesize)

else

totalpage=fix(n/pagesize)+1

EndIf

Ifrequest("page")=""Then

page=1

Else

page=Int(request("page"))

Endif

Ifpage>totalpageThen

page=1

EndIf

Ifpage<=0Then

page=totalpage

EndIf

frompage=(page-1)*pagesize

topage=frompage+pagesize-1

ifyushu=0then

frompage=(page-1)*pagesize

topage=frompage+pagesize-1

else

frompage=(page-1)*pagesize

topage=frompage+pagesize-1

Ifpage=totalpageThen

frompage=(page-1)*pagesize

topage=frompage+yushu-1

Endif

endIf

有什么地方说的不对,请多多指教

演示地址:http://fishbone31.w3.zccn.net

我这个网站因为上一页下一页刷新的都是整页,而非读取数据页[body.asp],所以速度不是很理想。

账号密码均为test

【分页显示之超级提速版】相关文章:

CSS实现绝对底部

CSS属性behavior的语法使用

CSS强制换行对齐的实现方法

CSS制作网页中的虚线

怎样在网页中显示虚线

css中换行的几种常用方式整理

CSS分页符代码

CSS教程:li和ul标签用法举例

网页中用于构造图表的一些基本CSS代码

CSS控制让每行显示4个图片的样式

精品推荐
分类导航