求创意找品牌创意企业 推荐: 网站建设 北京网站建设 
 
搜索 竞赛 产业 文案 论吧 论坛 酷站 矢量库 图片库 设计网址 作品集> 注册 - 登陆
首 页设计资讯大赛征集平面设计UI设计CG/动画工业设计建筑环境数码影像教程区设计访谈 精品欣赏会员作品集
>> 论坛发布优秀教程申请个人教程专区
推荐:经典素材资源
滚动新闻:[6-10]融于意,形于展!---52design作品集、设计师网上联展!
当前位置: 首页 >> 教程 >> 程序相关教程 >>正文
在ASP中使用均速分页法提高分页速度
资讯/教程/作品在线投稿  - 进入素材基地 - 论坛讨论 - 查看更多相关内容
时 间:2007-8-30 17:11:16   作者:   来 源:52design.com   浏览:
    一、适用范围

  均速分页法主要适用于文章系统,新闻系统等排序方法固定的ASP+ACCESS应用 

·设计师个人作品集火热申请中!
·查询网站排名推荐您用Chianz排名查询
·“论吧”正式上线 欢迎参与主题讨论
·全球经典酷站推荐欣赏
·矢量素材 给设计师提供强大后盾
·加入设计师论坛,精彩无限
·设计网址大全,免费收录所有设计站点

  
  二、特点说明

  很多用过一些文章系统或是新闻系统的朋友知道,一般的文章系统或是新闻系统,在分类分页时,通常是通过读取数据库中满足条件的排序后数据,然后根据请求页号,通过定位操作,指向某条数据,并且开始读取这条数据后面的若干条数据作为一页。这种分页方法,原理简单,但是存在的问题是每次都需要把数据库中满足条件的排序后数据都读取出来,如果有两千条数据,这个还好,如果有两万条呢?显示,这会占用大量的内存,浪费很多服务器资源。当然,如果有条件的,可以用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.china-u.com)然后按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
   第二页,83,82
   ……
   第N页是 : pagecount-(2*N-3), pagecount-(2*N-3)-1
  
   说明一下:其中84,83等等这些数字,就是在page_1中,你对应的str编号XXX
  
   说到这里可能大家就比较明白了,均速分页法的原理实际是原来把页面分好,在分页的时候直接用页面进行拼接。这比每次分页的时候从数据库里直接调用数据再进行分页要来得省资源。
   同时,还可以说明一点的是,你完全可以不建立page_1表,而把这些str保存为HTML,然后在分页的时候读取出HTML页面进行拼接。
  
   3、数据的添加

   在传统的HTML分页中,添加新数据后,要把所有的HTML分页重新生成一次,在均速分页法中,就无需这样。我们前面已经设定了每个小页面只显示20条记录,那么article_1表中,也只保存最多19条记录。我们新添加一条记录,那么同时把这条记录加入到article_1中,如果article_1中的数据已经超19,那么就把这里面的数据生成一个str,加上编号后保存在[page_1]里,当然,如果你是用生成HTML的,你可以直接生成一个HTML。如果article_1中的数据已经没有超19,那么就不用管它了。
  
  四、均速分页法和传统分页的比较

   我用了两千条数据的一个数据库进行测试,在XP系统下,P3 1G,256M内存的硬件条件下,用均速分页法平均速度在50MS,正负不超过10MS,用普通ADO分页,速度在85MS,正负在20-35MS之间,可见用均速分页法,在速度和稳定性上都是不错的。
  
   当然,对于数据库小的情况下,这样的优势可能并不明显,或者可能用ADO分页来的更快,但是如果在两万条数据的分页中,均速分页法的平均速度是普通ADO分页法的一半。
  
   当然,均速分页法也有自己的不足,比如程序复杂度比传统分页来的高,在数据库少的时候性能不如ADO。 
   
  
  五、最后一点说明:

   本文主要介绍的是均速分页法的一个原理,我花了一个晚上用程序进行了实践,是可行的。但我主要是把str生成HTML后读取,与本文介绍的数据库保存str有点不同,不过原理是一样的。
  
   如果您有条件使用SQL数据库,那么我建议您还是使用存储过程来实现分页的提速。


本文链接:


52design素材资源库52design图片库52design酷站营

我爱设计网www.52design.com
(在线编辑:morion) 】【打印】【关闭】【设计论坛】【设计师作品集
免责声明:本站刊载此文不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。对本文有异议,请联络本站!
转载要求:文章作者及来源信息必需保留。转载之图片、文件,链接请不要盗链到本站地址,且不准打上各自站点的水印。

经典设计欣赏 设计关键字:VI 新锐 包装 装帧 海报 地产广告 画册 名片 标志 软件界面 ICO 网页
C70精美同人游戏CG壁纸大合集
C70精美同人游
《吞食天地》官方壁纸
《吞食天地》官方
《三国演义OL》壁纸欣赏
《三国演义OL》
精美3D卡通动物
精美3D卡通动物
《万王之王2》官方壁纸
《万王之王2》官
蔡志忠《大话少林》精美动画壁纸
蔡志忠《大话少林
韩国站点 素材资源 艺术摄影 游戏娱乐 影视网站 建筑家居 FLASH站 旅游购物 明星网站
设计门户 优秀企业 时尚品牌 象素站点 数码通信 设计公司 汽车网站 国外优秀 儿童网站
个性展示 网站教学 工 作 室 学校教育 卡通漫画 文化艺术 体育运动 美容健身 食品饮料
当日文章推荐 查看更多相关内容
时装展示| 大S徐熙媛代言仔裤欣赏 [8-30]会展| 七宗罪:中国现代艺术大展上的七个行为 [8-30]
会展| 纪事,美域,未来 ——七零后新锐艺术 [8-30]工业资讯| 我国工业设计年产值达300亿 占世界 [8-30]
工业大赛| “方太杯”绿色家电全民创意工业设计大 [8-30]工业大赛| 2007“无锡(国家)工业设计园”杯 [8-30]
设计资源| 设计元素第四波:超酷设计元素矢量图8 [8-30]综合艺术| 亚洲青年动漫大赛暨中国(贵阳)卡通艺 [8-30]
互联网动态| 360buy京东商城网获1000万美 [8-30]互联网动态| 网站擅用美女照片做广告被判赔八千 [8-30]
互联网动态| 公司设计员开办成人网站赚钱 [8-30]综合艺术| 设计招投标何时去“流氓气”? [8-30]
会员作品集推荐 查看更多推荐会员作品
平面作品 | 插画作品 | 网页作品 | 包装作品 | 软件UI | 室内设计 | 数码摄影作品 | 建筑环境 | 工业设计 | 其他
地产项目-他作欣赏3jobWEB界面与聊天界面设计MMOSITE-kart专区MMOSITE-sof专区:《QQ魔域》2.0公测专题页面首页
个人网站GUDONG`ROOM3D展示排行榜碎布娃娃—10

数据载入中...
视觉焦点
优秀作品在线投稿
·
大S徐熙媛代言仔裤欣赏
大S徐熙媛代
River City Roundup Rodeo 平面广告设计
River
designsoldier 平面设计
design
polar design 平面设计欣赏
polar

站点新入
C70精美同人游戏CG壁纸大合集
C70精美同
《吞食天地》官方壁纸
《吞食天地》
展区
·翰海博网诚聘资深网页设计师 (2-29止)
·招聘全职美工 (8-30止)
·儒林设计工作室_招聘 (6-30止)
·WEB/GUI界面设计师 (1-10止)
·高薪诚聘网页美工 (1-28止)
·招聘资深平面设计师 (1-31止)
韩国站点 素材资源 艺术摄影 游戏娱乐 影视网站 建筑家居 FLASH站 旅游购物 明星网站 个性展示 网站教学 工 作 室 学校教育
设计门户 优秀企业 时尚品牌 象素站点 数码通信 设计公司 汽车网站 国外优秀 儿童网站 文化艺术 体育运动 美容健身 食品饮料
网站名称:seolleda
网站地址:http://www.seolleda.net/
加入时间:2008-8-21 9:33:21
网站名称:hanwhadays
网站地址:http://www.hanwhadays.com/
加入时间:2008-8-21 9:32:47
网站名称:ejiah
网站地址:http://www.ejiah.com/
加入时间:2008-8-21 9:31:45
网站名称:iamtodd
网站地址:http://iamtodd.com/
加入时间:2008-8-21 9:31:13
网站名称:pop
网站地址:http://www.pop.us/
加入时间:2008-8-21 9:29:54
网站名称:medialand
网站地址:http://greenoil2008.medialand.com.tw/
加入时间:2008-8-21 9:29:10
关于本站 | 联系方式 | 商业服务 | 合作伙伴 | 站点地图 | 免责声明 | 版权声明 | 在线投稿