佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > 來自CSDN的無限流分頁程序

來自CSDN的無限流分頁程序

熱門標(biāo)簽:智能手機 呼叫中心市場需求 服務(wù)器配置 鐵路電話系統(tǒng) 檢查注冊表項 銀行業(yè)務(wù) 網(wǎng)站文章發(fā)布 美圖手機

以下是代碼片段: 
'******************************************************************  
'** 本程序名:"無限流"分頁程序  
'** 作者:Arbiter(AAsx)  
'** 版本:Million Level  
'**  
'** QQ:22222xx  
'** Email:Arbiter@21cn.com  
'** http://www.imagecity.org/  
'******************************************************************  
'**  
'** 【作者的話】  
'**  
'** 分頁程序無疑是許多網(wǎng)絡(luò)程序功能中一個比較麻煩的東西,事實上現(xiàn)在  
'** 為止絕大部分人還是在使用傳統(tǒng)的分頁方法(Rs.PageSize=xx),而了解  
'** 數(shù)據(jù)庫操作的人都知道,這種傳統(tǒng)方式有個弊端:第一次打開頁面時,  
'** 它會預(yù)讀所有的記錄集,這當(dāng)在數(shù)據(jù)大的時候,這將是致命的,而且接  
'** 下來的翻頁速度也會非常慢,很占用資源。對于十萬數(shù)量級以上的數(shù)據(jù)  
'** 庫這種傳統(tǒng)分頁方式已經(jīng)顯得非常無力,更別說百萬級了(根本沒法操  
'** 作)。基于這種原因,促使我做了本程序。  
'**  
'** 【程序功能】  
'**  
'** 針對大型的數(shù)據(jù)庫進行分頁操作,理想的可操作的數(shù)據(jù)記錄量在200萬  
'** 以內(nèi)(Max Level版將無數(shù)量限制,且無論數(shù)據(jù)庫多大,翻頁速度都是  
'** 不變),這是Million Level版分頁程序在賽揚1G、內(nèi)存512、win2k環(huán)  
'** 境下的測試數(shù)據(jù):  
'**  
'** SQLserver 2k + 10萬條記錄 + 每頁顯示20條:  
'** 平均翻頁速度:45ms  
'** SQLserver 2k + 100萬條記錄 + 每頁顯示20條:  
'** 平均翻頁速度:350ms  
'**  
'**  
'** 【分頁原理】  
'**  
'** 本程序不再使用Rs.PageSize的方式分頁,連接數(shù)據(jù)庫的游標(biāo)類型  
'** 也不是使用conn,1,x,而是conn,0,1,這應(yīng)是最快的游標(biāo)類型了,不要  
'** 以為這樣會使程序變得復(fù)雜,相反,程序非常簡單,如果你看不明白,  
'** 應(yīng)該是我的編程風(fēng)格你不習(xí)慣,而非程序復(fù)雜。  
'** "無限流"分頁的中心是:每頁只讀出需要顯示的記錄,不再象傳統(tǒng)  
'** 分頁程序預(yù)讀全部的數(shù)據(jù),這正在本程序最大的優(yōu)點--占用資源少,同  
'** 理速度也得到非常大的提升,特別在數(shù)據(jù)量越大的時候,它的速度優(yōu)勢  
'** 越明顯(100萬記錄才350ms左右)。  
'** 當(dāng)程序執(zhí)行后,使用CurcorBegin和CurcorEnd記錄顯示的第一條記  
'** 錄和最后一條記錄的ID值,作為下一次翻頁的標(biāo)記,然后利用Top xx取  
'** 出需要的數(shù)據(jù)顯示,同時又再對ID值進行記錄。  
'**  
'** 【結(jié) 言】  
'**  
'** 本程序為共享版,提供給各程序愛好者研究使用,若要轉(zhuǎn)載、散播、修  
'** 改或作其他用途,請尊重作者的辛勞,注明出處。  
'** 如果本程序中有錯漏、非最優(yōu)化等缺點,請到www.csdn.net的Web開發(fā)/  
'** ASP欄目中發(fā)表討論,為了中國軟件事業(yè)的發(fā)展,請不要固步自封:)  
'**  
'********************************************************************    
Option Explicit  
'Response.Flush  
Dim BeginTime,EndTime  
BeginTime=Timer  
Dim conn,SQLstr,Rs,DefRecordNum,CursorBegin,CursorEnd,CurPageNum,hav  
DefRecordNum=20  
'--------------獲取相關(guān)參數(shù)----------  
If Request("CursorBegin")="" Then CursorBegin=0 Else CursorBegin=Request("CursorBegin")  
If Request("CursorEnd")="" Then CursorEnd=0 Else CursorEnd=Request("CursorEnd")  
If Request("CurPageNum")>"" Then  
CurPageNum=CLng(Request("CurPageNum"))  
If CurPageNum=0 Then CurPageNum=1  
Else  
CurPageNum=1  
End If  
hav=Request("hav")  
If hav="" Then hav="next"  
'----------------End-----------------  
'------------顯示翻頁內(nèi)容函數(shù)--------  
Function TurnPageFS(DispRecordNum)  
Dim n  
While Not(Rs.Eof) And n n=n+1  
Response.Write ""_  
""Rs(0)""_  
""Rs(1)""_  
""Rs(2)""_  
""Rs(3)""_  
""Rs(4)""_  
""Rs(5)""_  
""  
If n=1 Then CursorBegin=Rs(0)  
If n=DefRecordNum Or Rs.Eof Then CursorEnd=Rs(0)  
Rs.MoveNext  
Wend  
End Function  
'-------------連接數(shù)據(jù)庫-------------  
Set conn=Server.CreateObject("Adodb.Connection")  
'SQLstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="Server.Mappath("mldata.mdb")  
SQLstr="Driver={SQL Server};server=arbiter;uid=arbiter;pwd=123456;database=mldata"  
conn.Open SQLstr  
'---------統(tǒng)計總記錄數(shù)/總頁數(shù)---------  
'-PS:推薦使用count(ID),ID為自動編號且索引,否則速度有可能大打折扣  
'-PS:此統(tǒng)計是本程序中最耗資源的一部分,如果取消這段程序,速度會快上10倍左右  
Dim TotalRecords,TotalPages  
SQLstr="Select count(ID) As RecordSum From ABC"  
Set Rs=conn.Execute(SQLstr,0,1)  
TotalRecords=Rs("RecordSum")  
TotalPages=Abs(Int(TotalRecords/DefRecordNum*(-1)))  
Rs.Close  
Set Rs=Nothing  
'--------根據(jù)hav選擇相應(yīng)的SQL字串-----  
Select Case(hav)  
Case "back"  
CursorEnd=CursorBegin  
SQLstr="Select Top "DefRecordNum"_  
ID,Title,FileName,K,ImgSize,NameSon _  
From ABC Where ID"CursorBegin_  
" And ID In (Select Top "DefRecordNum_  
" ID From ABC Where ID"CursorBegin_  
" Order by ID DESC) Order by ID"  
Case "next"  
SQLstr="Select Top "DefRecordNum_  
" ID,Title,FileName,K,ImgSize,NameSon From ABC Where ID>"CursorEnd_  
" Order by ID"  
End Select  
Set Rs=conn.Execute(SQLstr,0,1)  
%>  



  

  
td,br,div,p,body {font-size:12px}  

  

   

首頁 上一頁   
下一頁   

  

   
ID  
Title  
FileName  
大小  
尺寸  
類別      

首頁 上一頁   下一頁  

function turnpage(func){  
var CurPageNum=; //取得當(dāng)前頁碼  
var CursorBegin=; //取得第一個顯示的記錄的ID值  
var CursorEnd=; //取得最后一個顯示的記錄的ID值  
var TotalPages=; //取得頁面總數(shù)   
var BackUrl='mllist.asp?CurPageNum='+(CurPageNum-1)+'CursorBegin='+CursorBegin+'CursorEnd='+CursorEnd+'hav=back';  
var NextUrl='mllist.asp?CurPageNum='+(CurPageNum+1)+'CursorBegin='+CursorBegin+'CursorEnd='+CursorEnd+'hav=next';  
if(CurPageNum=1  func=='back'){  
location.href='#';  
}else if(CurPageNum>=TotalPages  func=='next'){  
location.href='#';  
}else if(func=='back'){  
location.href=BackUrl;  
}else if(func='next'){  
location.href=NextUrl;  
}  
}

您可能感興趣的文章:
  • nginx 如何實現(xiàn)讀寫限流的方法
  • asp中"無限流"分頁程序代碼
  • RateLimiter 源碼分析

標(biāo)簽:新疆 沈陽 長治 紅河 樂山 滄州 上海 河南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《來自CSDN的無限流分頁程序》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    县级市| 醴陵市| 天长市| 东阿县| 临安市| 铁岭县| 静安区| 阿拉善盟| 芒康县| 淳安县| 介休市| 泉州市| 美姑县| 澳门| 内黄县| 东乌珠穆沁旗| 陵水| 肇州县| 来宾市| 施秉县| 石嘴山市| 霸州市| 巩义市| 古田县| 宁阳县| 武穴市| 顺昌县| 和林格尔县| 黄石市| 襄汾县| 东乡| 普格县| 沛县| 特克斯县| 灵山县| 容城县| 修水县| 都江堰市| 探索| 房产| 塘沽区|