大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> ASP专区 -> 在ASP中改善动态分页的性能(转)

在ASP中改善动态分页的性能(转)

时间: 2021-07-31 作者:daque

改编:张立锋 张 禾 概 述此刻有不少引见运用asp实行动静分页的作品,本领并行不悖,即是历次运用ado归来原始数据满意前提记载会合的指定页。但在本质工程运用中,原始数据量常常很大,原始数据的加工比拟慢,即使历次换页原始数据都要加工一次,则会重要影相应用步调运转的本能。处置上述题目重要有两种道路:一种道路是将查问前提对立恒定,运用对立恒定的查问前提对原始数据举行加工,天生一个少量据量的中央库,历次查问都对中央库举行操纵。如许固然会普及步调的本能,但会感化步调的精巧性,并且 server端还需准时对原始数据举行加工保护。另一个道路是在server端生存查问的截止。如许固然不许革新查问的本能,但client端换页时server端不妨很快相应。第一种道路的实行比拟大略,正文引见第二种道路的实行本领。实行本领将server端的查问截止生存在一个动静数组中,即在 session_onstart进程中证明一个二维的动静数组。当server端收到client端提交的请求后,开始确定请求是前提查问仍旧换页,如是前提查问则辨别查问前提能否与上回提交的查问前提各别,如各别则实行查问,将查问截止生存在该数组中,而后向client端归来第一页的实质,要不径直从该数组中归来相映页的实质。步调实行1.设置二维数组及其余变量sub session_onstart dim tempdb()redim preserve tempdb(1,2)session(“storedarray") = tempdb’设置一个session数组 session(“ipagecount")=0 session(“ipageno")=0 ...... end sub 2.挪用保存进程归来数据sub getrecordset(strbbmc,strkssj , strzzsj ,strnodecode ,strfxzl ) '参数为报表称呼和各个控制前提 select case strbbmc case “买卖汇总表" strcnn=“provider=msdasql;dsn=sqldb; uid=sa;pwd=123456;database=vlog;" set objcnn=server.createobje(“adodb.connection") objcnn.commandtimeout = 9999999 objcnn.connectiontimeout = 99999999 objcnn.cursorlocation = aduseclient objcnn.open strcnn '翻开贯穿set objrs =server.createobject (“adodb.recordset")objrs.pagesize = ipagesize objrs.cachesize = ipagesize objrs.open “sszhatmlog ‘“ & strkssj & "' , ‘“ & strzzsj & "', ‘“ & strnodecode & "' , ‘“ & strfxzl & "'",objcnn,adopenstatic , adlockreadonly,1 ’实行保存进程归来查问截止 ...... end sub3.将查问截止生存到动静数组sub saverecordset()if objrs.eof = false then objrs.movelast session(“irowcount") = objrs.recordcount session(“ifieldcount") = objrs.fields.count session(“ipagecount") = objrs.pagecount redim preserve temparray(session (“irowcount"),session(“ifieldcount"))’temparray是一个二维动静数组,按照记载集巨细从新设置其巨细 objrs.movefirst icount=0do while objrs.eof=false icount = icount + 1for i= 1 to session(“ifieldcount") temparray(icount,i)=objrs.fields.item (i-1).value nextobjrs.movenextloop session(“storedarray") = temparrayobjrs.closeelse session(“ipagecount") = 0 end if end sub 4.表露记载实质sub showrecord() ...... localarray=session(“storedarray")ishowtotal=(ipagecurrent-1)*ipagesize+1irowloop = 1 do while irowloop < = ipagesize and ishowtotal < = session(“irowcount") response.write(“< tr >")for i = 1 to session(“ifieldcount") response.write(“< td >"& localarray(ishowtotal,i)) next response.write(“< /tr >")ishowtotal = ishowtotal + 1irowloop = irowloop + 1 loop response.write(“< /table >")if ipagecurrent < > 1 andipagecurrent < session (“ipagecount") then % > < center >< a href=“db_pag.asp?page=< %=ipagecurrent - 1 % >" >前一页< /a >< a href= “db_pag.asp?page=< %= ipagecurrent + 1 % >" > 后一页< /a >< /center >< %elseif ipagecurrent < > 1 then % > < center >< a href=“db_pag.asp?page=< %= ipagecurrent - 1 % >" >前一页 < /a >< /center >< % end if if ipagecurrent < session(“ipagecount")then % > < center >< a href=“db_pag.asp?page= < %= ipagecurrent + 1 % >" >后一页 < /a > < /center > < % end if end if end sub 5.主步调if request.querystring(“page") = “" then’提交查问请求而且查问前提与上一次各别 ...... call getrecordset(strbbmc,strkssj,strzzsj, strnodecode,strfxzl)call saverecordsetelse ipagecurrent=cint(request.querystring(“page")) strkssj=session(“strkssj") end ifif session(“ipagecount") = 0 thenresponse.write “对不起!没有满意前提的记载" response.write “< br >" elsecall showrecord()end if 中断语本步调的要害在乎session数组的设置及其赋值的实行,经过运用session数组不妨普及处置洪量数据的运用步调的本能。

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.