当前位置:首页 » 网站技术 » ASP

简易方法提高ASP分页效率

...

简易方法提高ASP分页效率

提高ASP分页效率有几种比较常用的方法:

1、使用存储过程

一般ASP+SQL Server可以使用存储过程来提高分页效率,但对于Access数据库,此方法就不能使用了,因为Access数据库不支持存储过程。存储过程分页,只需要传入当前页数,然后在存储过程中计算所要获取的记录范围,再查询出来。存储过程在数据库端执行,只需要返回所需的结果,节省网络带宽,从而提高了分页效率。在这里就不贴代码了,可以搜索本站或到搜索引擎上去查找。

2、使用开始和结尾ID

使用此方面,URL中一般都带有“开始ID”和“结尾ID”,如:url=list.asp?page=2&beginid=35&endid=50,在写SQL查询语句时,就可以限定查询的范围,而不用把所有的记录查出来再进行分页,简单来讲就是:查出需要的记录,不需要的记录不查出来。下面的SQL语句就是查出10条记录。

sql = "select top 10 from [Article] where [ID]>" & beginid

这种方式也不失为一种好方法,但是url会比较长,比较复杂,可能不利于搜索引擎收录。

上面的方法都是行之有效的,但略有不足,下面是简易的提高分页高效率的方法,其他可以用于ASP.NET、PHP、JSP等

就是对第一页或前几页使用TOP,因为一般分页前几页被访客浏览的可能性比较高,越后越少人浏览,基于这种考虑产生了高效率简易分页方法。

下面的ASP代码,这里只写出部分代码:

Dim sql, currentpage, pagesize
pagesize = 10 '毎页记录数
currentpage = Request.QueryString("page") '当前页数
If Len(currentpage) = 0 Then currentpage = 1
If Not IsNumeric(currentpage) Then currentpage = 1

If currentpage <= 5 Then
sql = "select top " & currentpage * pagesize & " [Title],[Content] from [Article]"
Else
sql = "select [Title],[Content] from [Aritcle]"
End If

上面的代码,每一页只查10条记录,第二页20条···第五页50条,六页开始就查全部。这样前几页的效率有飞跃的提升,但后面的页面就没有提升效率。

如果访问量很大,对效率要求更高,可考虑静态化,生成HTML页面,这样生成后的速度就很好了。

继续阅读
提高asp页面的访问速度的技巧
ASP提取HTML中图片地址的函数
ASP获取数据库所有表名和字段名
SQL修改ACCESS数据表名
ASP.NET AJAX 错误:'Sys' 未定义解决方法
ASP.NET服务端控件事件是如何触发的
ASP.NET2.0服务器控件开发之实现事件
ASP.NET2.0服务器控件之捕获回传事件
ASP.NET 2.0服务器控件之处理回传数据
发表评论

昵称:
最新评论
暂时没有评论!