ASP教程:不連數(shù)據(jù)庫(kù)進(jìn)行查詢(xún)分頁(yè)的思路_ASP教程
推薦:ASP技術(shù)與PHP,CGI,JSP等技術(shù)的比較目前,最常用的三種動(dòng)態(tài)網(wǎng)頁(yè)語(yǔ)言有ASP(Active Server Pages),JSP(JavaServer Pages),PHP (Hypertext Preprocessor)。 簡(jiǎn) 介 ASP全名Active Server Pages,是一個(gè)WEB服務(wù)器端的開(kāi)發(fā)環(huán)境,
看了不少介紹,知道set rs=conn.execute(sql)的執(zhí)行效率比rs.open sql,conn,1,1要高很多,但是set rs=conn.execute(sql)這種執(zhí)行方式也有很多不足,首先它不具有分頁(yè)屬性,比如rs.pagesize,rs,absolutepage等屬性,這樣的話,通過(guò)這種方式set rs=conn.execute(sql)執(zhí)行的速度雖然快了,但是卻不能按普通方式進(jìn)行分頁(yè),怎么辦呢??
第二天,查了一下網(wǎng)上的資料,突然想到是否可以把所需數(shù)據(jù)提到一個(gè)數(shù)組里,然后對(duì)數(shù)組進(jìn)行分頁(yè)呢?首先把set rs=conn.execute(sql)查詢(xún)出來(lái)的結(jié)果通過(guò)rs.getrows()取出來(lái)附給一個(gè)數(shù)組,于是我就在各網(wǎng)站上找分頁(yè)的帖子,雖然發(fā)現(xiàn)不少高效率分頁(yè)的帖子(包括存儲(chǔ)過(guò)程等),可結(jié)果發(fā)現(xiàn)全都是需要通過(guò)SQL執(zhí)行的,即翻頁(yè)的時(shí)候也需要執(zhí)行SQL語(yǔ)句,此時(shí)頭都暈了,優(yōu)化的也只是SQL語(yǔ)句,此時(shí)實(shí)在沒(méi)辦法,只好自己努力了!終于完成了一個(gè)數(shù)組分頁(yè)的粗稿,代碼不是很完善,讓大家一起來(lái)研究一下!代碼如下:
首先有一個(gè)index.asp查詢(xún)頁(yè):
| <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>無(wú)標(biāo)題文檔</title> </head> <body><FORM id="SearchForm" name="SearchForm" method="post" action="search.asp?act=cha"> <div class=input> <input id=keyword onmouseover=this.focus() title="快速搜索您的留言記錄" onfocus=this.select() class="in" maxlength=35 name=keyword /> <select style="width:120px;margin-top:-25px" name="ChannelID"> <option value="k2">留言人</option> <option value="k1">留言?xún)?nèi)容</option> </select> <Input id=search_btn type=submit value="查詢(xún)"> </div> </FORM> </body> </html> search.asp的代碼: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>無(wú)標(biāo)題文檔</title> </head> <body> <% If request.querystring("act")="cha" Then search_type=request.FORM("ChannelID") keywords=request.form("keyword") if search_type="k1" then '按照留言?xún)?nèi)容搜索 sql="select * from gbook_rec where g_content like '%"&keywords&"%'" ElseIf search_type="k2" then 'if search_type="k2" then '按照留言人搜索 sql="select * from gbook_rec where g_name like '%"&keywords&"%'" Else response.end end If Set rs=conn.execute(sql) If rs.eof And rs.bof Then %> <div class="search">沒(méi)有查找到您要的記錄!</div> <% response.End Else aResults=rs.getrows()'取出數(shù)據(jù)放入數(shù)組ROW中 application("data")=aResults Set rs=nothing conn.close '關(guān)閉數(shù)據(jù)庫(kù) End IF End If aResults=application("data") Dim i,row,pagesize,epage,numb,pagecount,fenye numb=UBound(aResults,2) 1 '總記錄行數(shù) pagesize=2 '每頁(yè)條數(shù) If numb Mod pagesize = 0 Then '判斷總頁(yè)數(shù) pagecount=Int(numb/pagesize) Else pagecount=Int(numb/pagesize) 1 End If epage=request.querystring("page") If epage="" Then epage=1 For i=(epage-1)*pagesize To epage*pagesize-1 If i>UBound(aResults,2) Or i<0 Then Exit for %> <div class="content"> <ul><li>記錄<%=i 1%></li> <li>留言人:<%=aResults(1,i)%></li> <li>內(nèi)容:<%=aResults(2,i)%></li> <li>時(shí)間:<%=aResults(3,i)%></li> <li>IP:<%=aResults(5,i)%></li> </ul> </div> <% Next If numb>pagesize Then fenye="<a href=search.asp?page=1>首頁(yè)</a> " fenye=fenye&"<a href=search.asp?page="&epage-1&" title="&epage-1&">前頁(yè)</a> " fenye=fenye&"<a href=search.asp?page="&epage 1&" title="&epage 1&">后頁(yè)</a> " fenye=fenye&"<a href=search.asp?page="&pagecount&">末頁(yè)</a> " fenye=fenye&"<BR>" fenye=fenye&"總頁(yè)數(shù)"&pagecount&",當(dāng)前頁(yè)"&epage&",總記錄為:"&numb response.write fenye End if %> </body> </html> |
總結(jié):本人認(rèn)為以上代碼除了初次查詢(xún)需要連接到數(shù)據(jù)庫(kù)外,其他時(shí)間都不需要連接數(shù)據(jù)庫(kù),對(duì)于大型數(shù)據(jù)查詢(xún)或連接人數(shù)比較多的時(shí)候?qū)Y源節(jié)省還是很有用處理的!另外將查詢(xún)數(shù)組保存在application對(duì)象上,還可以根據(jù)application( "data")("username")來(lái)判斷某人查詢(xún)過(guò)什么,不過(guò)此代碼為初次模型,還有待今后大家一起努力改進(jìn)!希望大家都頂力關(guān)注支持,謝謝!
測(cè)試代碼下載
分享:一個(gè)免費(fèi)的簡(jiǎn)單聊天室源代碼chat.html 以下為引用的內(nèi)容: <html> <head><title>Chat</title></head> <frameset rows="*,100"> &
- asp FSO 讀寫(xiě)文件本文件實(shí)現(xiàn)代碼
- asp中isNull、isEmpty和空字符串的區(qū)別
- asp獲取用戶真實(shí)IP地址的方法
- asp連接sqlserver數(shù)據(jù)庫(kù)實(shí)現(xiàn)代碼
- asp中正則表達(dá)式過(guò)濾html代碼函數(shù)
- asp中g(shù)et post提交表單區(qū)別
- 網(wǎng)頁(yè)模板:ASP內(nèi)建對(duì)象Request
- xmlhttp的open方法使用詳解
- ASP的常用的自定義函數(shù)大全
- asp中用for循環(huán)的一個(gè)小技巧
- eWebEditor v3.8 列目錄
- ASP無(wú)組件分頁(yè)實(shí)現(xiàn)思路及代碼
- 相關(guān)鏈接:
復(fù)制本頁(yè)鏈接| 搜索ASP教程:不連數(shù)據(jù)庫(kù)進(jìn)行查詢(xún)分頁(yè)的思路
- 教程說(shuō)明:
ASP教程-ASP教程:不連數(shù)據(jù)庫(kù)進(jìn)行查詢(xún)分頁(yè)的思路
。