|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
只要你想学,就没什么优缺点,上面那位大哥已经把网上的评论说了,但我认为想学哪个都一样,不然它就不可能在当今时代数字艺术方面存活到今天分页<%
******************************************************************
**本程序名:"无穷流"分页程序
**Arbiter(AAsx)
**版本:MillionLevel
**
**QQ:22222xx
**Email:Arbiter@21cn.com
**http://www.imagecity.org/
******************************************************************
**
**【作者的话】
**
**分页程序无疑是很多收集程序功效中一个对照贫苦的器材,现实上如今
**为止尽年夜部分人仍是在利用传统的分页办法(Rs.PageSize=xx),而懂得
**操纵的人都晓得,这类传统体例有个坏处:第一次翻开页面时,
**它会预读一切的纪录集,这当在数据年夜的时分,这将是致命的,并且接
**上去的翻页速率也会十分慢,很占用资本。关于十万数目级以上的数据
**库这类传统分页体例已显得十分有力,更别说百万级了(基本没法操
**作)。基于这类缘故原由,促使我做了本程序。
**
**【程序功效】
**
**针对年夜型的举行分页操纵,幻想的可操纵的数据纪录量在200万
**之内(MaxLevel版将有数量限定,且不管多年夜,翻页速率都是
**稳定),这是MillionLevel版分页程序在赛扬1G、内存512、win2k环
**境下的测试数据:
**
**SQLserver2k+10万笔记录+每页显现20条:
**均匀翻页速率:45ms
**SQLserver2k+100万笔记录+每页显现20条:
**均匀翻页速率:350ms
**
**
**【分页道理】
**
**本程序不再利用Rs.PageSize的体例分页,毗连的游标范例
**也不是利用conn,1,x,而是conn,0,1,这应是最快的游标范例了,不要
**觉得如许会使程序变得庞大,相反,程序十分复杂,假如你看不分明,
**应当是我的编程作风你不习气,而非程序庞大。
**"无穷流"分页的中央是:每页只读出必要显现的纪录,不再象传统
**分页程序预读全体的数据,这正在本程序最年夜的长处--占用资本少,同
**理速率也失掉十分年夜的提拔,出格在数据量越年夜的时分,它的速率上风
**越分明(100万纪录才350ms摆布)。
**当程序实行后,利用CurcorBegin和CurcorEnd纪录显现的第一笔记
**录和最初一笔记录的ID值,作为下一次翻页的标志,然后使用Topxx取
**出必要的数据显现,同时又再对ID值举行纪录。
**
**【结言】
**
**本程序为共享版,供应给各程序喜好者研讨利用,若要转载、散布、修
**改或作其他用处,请尊敬作者的辛勤,说明出处。
**假如本程序中有讹夺、非最优化等弱点,请到www.csdn.net的Web开辟/
**ASP栏目中宣布会商,为了中国软件奇迹的开展,请不要抱残守缺:)
**
********************************************************************OptionExplicit
Response.Flush
DimBeginTime,EndTime
BeginTime=Timer
Dimconn,SQLstr,Rs,DefRecordNum,CursorBegin,CursorEnd,CurPageNum,hav
DefRecordNum=20
--------------猎取相干参数----------
IfRequest("CursorBegin")=""ThenCursorBegin=0ElseCursorBegin=Request("CursorBegin")
IfRequest("CursorEnd")=""ThenCursorEnd=0ElseCursorEnd=Request("CursorEnd")
IfRequest("CurPageNum")""Then
CurPageNum=CLng(Request("CurPageNum"))
IfCurPageNum<=0ThenCurPageNum=1
Else
CurPageNum=1
EndIf
hav=Request("hav")
Ifhav=""Thenhav="next"
----------------End-----------------
------------显现翻页内容函数--------
FunctionTurnPageFS(DispRecordNum)
Dimn
WhileNot(Rs.Eof)Andn<DispRecordNum
n=n+1
Response.Write"<tr>"&_
"<tdbgcolor=efefef>"&Rs(0)&"</td>"&_
"<tdbgcolor=efefef>"&Rs(1)&"</td>"&_
"<tdbgcolor=efefef>"&Rs(2)&"</td>"&_
"<tdbgcolor=efefef>"&Rs(3)&"</td>"&_
"<tdbgcolor=efefef>"&Rs(4)&"</td>"&_
"<tdbgcolor=efefef>"&Rs(5)&"</td>"&_
"</tr>"
Ifn=1ThenCursorBegin=Rs(0)
Ifn=DefRecordNumOrRs.EofThenCursorEnd=Rs(0)
Rs.MoveNext
Wend
EndFunction
-------------毗连-------------
Setconn=Server.CreateObject("Adodb.Connection")
SQLstr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&Server.Mappath("mldata.mdb")
SQLstr="Driver={SQLServer};server=arbiter;uid=arbiter;pwd=123456;database=mldata"
conn.OpenSQLstr
<p>---------统计总纪录数/总页数---------
-PS:保举利用count(ID),ID为主动编号且索引,不然速率有大概年夜打扣头
-PS:此统计是本程序中最耗资本的一部分,假如作废这段程序,速率会快上10倍摆布
DimTotalRecords,TotalPages在实现ERP等高端的ASP应用时,用户需要提供核心的经营资料,需要ASP商有很高的信用度。楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。 |
|