分页显示之超级提速版_经验交流

大家知道,asp本身提供分页功能,但是,如果数据量很大的时候,分页显示起来,每换一页都要等N长时间,那是人们最讨厌的事情。那为什么每换一页都要这么长时间呢?其实,事实上每换一个页面,后台就从数据库中检索一次数据,这样一来数据量大了,自然速度缓慢。这当中我们可以看出它做了很多次重复的工作。数据的检索只要一次就够了,因为数据没被操作过,无论检索几次结果都是一样的。我们的目标就是要把这当中的重复检索次数减少到最少,1次或者2次。方法就是:把检索好的数据保存起来(比如你可以在登录成功后就在后台检索你要的数据,把检索出来的存为数组放入session,然后再跳转到要显示数据的页面),当然这里可以用session变量来保存(好像用cookie无法保存),不过我知道它的极限是多少,如果数据量大到使session变量溢出的话,那我也无计可施了。废话少说了,下面说明下怎么个保存数据法?
首先要从数据库读取数据,建议使用存储过程读取
Set cmd = Server.CreateObject("ADODB.Command")
With cmd
.ActiveConnection=conn
.CommandType=&H0004 '存储过程
.CommandText="guestbookpro"
End With
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
哈哈,数据已经读出,接下来就该对数据进行分页显示了。。
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=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 page<=0 Then
page=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 If
有什么地方说的不对,请多多指教
演示地址:http://fishbone31.w3.zccn.net 
我这个网站因为上一页下一页刷新的都是整页,而非读取数据页[body.asp],所以速度不是很理想。
账号密码均为test

时间: 2024-09-25 04:38:23

分页显示之超级提速版_经验交流的相关文章

当标题不能显示完整的解决方法_经验交流

其实建议用css控制超出隐藏显示 也就是标题因为设计的宽度问题所以没有显示全,看样子是使用程序来截字的.我想很多网站都遇到这样的情况.为了视觉效果不得不进行截字显示以满足网站的整体视觉效果.通常我们采用截字的方法是两种,一种是通过后台输出时来事先设定一定的字符数量.另一种是通过CSS或是JS来对已经输出的完整的内容进行视觉剪截. 在网页标准没有兴起的时候基本上是采用第一种方式来解决这个问题,直到现在这种方式依然被广泛地使用着.这种方式的好处就是可以准确的剪截字数,而不足可能就是因为剪截的工作在后

Firefox返回时Iframe的显示Bug的解决方法_经验交流

<script type="text/javascript">//<![CDATA[ if(getCookie('firefoxIframe')){ document.write('<p id="addAd"><a href="cookie.html">点击这里删除这个iframe</a></p>'); document.write('<iframe height="

关于Firefox中的Flash不可以显示透明效果的问题_经验交流

由于自己站点的首页用了透明Flash.在IE核心的浏览器显示一切正常.可到了Firefox里面就没有了透明效果,特别是有些站点用的是全页面的透明Flash这样鼠标不能穿透,真就伤脑筋了.今天特地到Firefox社区去寻找答案去了.结果是我们的代码不标准,还好我用的Flash不多.赶紧改了试试.[sleepy]问题解决. 原来要在Embed标签下加上wmode="transparent"这个属性. 相关代码如下:  程序代码 复制代码 代码如下: <embed src="

css写菜单:简洁注释版_经验交流

首页 111112 111112 111112 导航2 222221 222221 222221 导航3 333331 333331 333331 导航4 444441 444441 444441 导航5 555551 555551 555551 导航6 666661 666661 666661

层盖住下拉列表框问题解决方案_经验交流

IE6真的让人很郁闷.但是就目前而言,我们还是不能放弃对IE6的兼容.从下面的我的blog访问统计分析数据来看,使用IE6的还是占有绝对主流的.列表框问题解决方案_经验交流-下拉列表">本来想顺便说说web标准中这个"标准"到底是个什么东西,但是发现,还是明日另起一篇吧.因为这个不是"顺便说说"就能说清楚的.我们今天还是不如这个正题--如何让层盖住下拉列表框? 非常郁闷或者非常幸运的说一下:这个问题只会出现IE7之前那些对web标准支持不好的浏览器中

ASP中实现分页显示的七种方法_应用技巧

在微软的ASP编程体系中,ADO对象的建立,使得从网页访问数据库成为一件易事,特别是ADO的Recordset对象使得控制数据的输出显示更为方便.自由.而在Visual InterDev6.0(以下简称VI6.0)中,由于Script Object Model(以下简称SOM).Design-Time Control(以下简称DTC)以及Data Environment Object Model(以下简称DEOM)等对象模型的引入,使网页对数据库的访问设计显得更为方便. 因为主题方面的原因,关于

xhtml+css网页制作中常见问题解决方法_经验交流

无论是谁,在制作页面的过程都是会碰到这样或者那样的问题,出了问题就肯定要解决.解决问题的前提是要知道问题出在什么地方,对于新手来说不一定一看到问题就知道问题出在哪里.比如在IE6中"多了一只猪"的问题,对于一些问题需要更多的经验交流分享吸收后才能更好的成长. 在网络中我想大家都有提过问题,需要别人解答的时候,但往往是你的一个问题却得不到任何人给你的解答,或者说是完全被无视了.对于这个时候的你,是不是在想"难道是因为我这个问题太简单了,他们都不想回答""他们

如何分页显示数据库查询结果?_编程10000问

<% if Request.QueryString("PageNumber").count > 0 then <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> ' 指定页号的参数PageNumber.如果指定页号,则以指定页号为依据. PageNumber = Request.QueryString("PageNumber&quo

手机屏幕尺寸测试——手机的实际显示页面的宽度_经验交流

手机站开发遇到一些问题,设计页面使用多大的尺寸?为此做了一些研究,除IPhone特殊一些外,目前市面上的安卓系统的实际显示页面的宽度,都是360px. 手机型号 竖屏宽度 IPhone 5 320px IPhone 6 375px IPhone 6 Plus 414px Nexus 4 384px Android(大多数) 360px 前两年,安卓的分辨率多数还是240px 或 320px,现在是360px,为了向下兼容,向上也兼容,最终将 360px 定为设计的尺寸,后期可以使用CSS3 Me