选择显示字体大小

在asp中使用均速分页法提高分页速度

一、适用范围
  均速分页法主要适用于文章系统,新闻系统等排序方法固定的asp+access应用

二、特点说明
    很多用过一些文章系统或是新闻系统的朋友知道,一般的文章系统或是新闻系统,在分类分页时,通常是通过读取数据库中满足条件的排序后数据,然后根据请求页号,通过定位操作,指向某条数据,并且开始读取这条数据后面的若干条数据作为一页。这种分页方法,原理简单,但是存在的问题是每次都需要把数据库中满足条件的排序后数据都读取出来,如果有两千条数据,这个还好,如果有两万条呢?显示,这会占用大量的内存,浪费很多服务器资源。当然,如果有条件的,可以用sql数据库,这样就好办多了,用一点存储过程就全部解决了。不过可能很多朋友还是在用access数据库,这样就没有办法了。当然,还有一些程序是把分页生成html,就像不少下载站点一样,大家有没有想过,这样会出现什么问题?如果我在后台一次添加一条记录,那么我得把这个分类中所有的分页都重新生成一次html,这是肯定的,想想吧,这样效率是不是很差。
    均速分页法就是为了解决在access数据库中,大量数据的分页而想出来的。它兼有html分页和传统ado分页的优点。一是速度快,占用资源少,不管你是第一页还是第一百页,程序速度都是相同的。而且在数据添加时,不必把所有分页都重新生成。下面我把原理介绍一下

三、分页原理
    数据库中有一个article表,一个class表,我们不考虑是不是无限级分类还是两级分类,这个与我们无关。
    [article]  id int identity (1, 1) not null, classid int default 0, title varchar(100), addtime datetime
    [class] id int identity (1, 1) not null, classname varchar(20)

    1、生成分页
    如果class表中有一行数据是id为1,classname为“asp分类”,我们先把所有article中所有classid=1的数据都取出来,(www.acnow.net)然后按addtime升序排列,这个与普通的ado分面是一样的,但是,下面我们要进行一些处理。
    我们动态的在数据库里生成一个表,名字叫[page_1],1就是对应的classname为“asp分类”的id自动编号。
    [page_1] pagenum int, pagestr text

    我们先每20条数据生成一个str,每个str实际就是显示时这20条数据库的列表,然后为这个str编个号xxx,如果是0-19条记录,那么xxx就是001,如果是20-39,xxx就是002,以此类推。把str和它的编号加入page_1中。我们这里假设最大的是84

    大家肯定会想到,数据不可能总是整除19(20个数据应该是mod 19)呀,当然,我们要处理一下零头,这些零头应该是最新的数据(我们是按addtime)排列的。我们再动态的建立一个表,[aritcle_1]
    [article_1]  id int identity (1, 1) not null, artid int, classid int default 0, title varchar(100), addtime datetime
    把多出来的零头数据加入这个表中。


    2、数据的显示
    定义pagecount是[page_1]的记录数

    我们分两种情况来
    (1)如果article_1没有记录(没有零头数据)
     第一页是84,83
     第二页是82,81
     第三页是80,79
     ……
     第n页是 : pagecount-(2*n-2), pagecount-(2*n-2)-1 

    (2)如果article_1有记录(有零头数据)
     第一页,调用article_1的数据,84


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons