仓酷云
标题:
ASP网站制作之在ASP中改良静态分页的功能(转)
[打印本页]
作者:
金色的骷髅
时间:
2015-1-16 23:20
标题:
ASP网站制作之在ASP中改良静态分页的功能(转)
ASP最大的缺点在于网络的安全性和可靠性,企业将经营数据放在开放的平台上,最大的担忧就是如何保证这些数据不被其他人破坏。静态|分页|功能原作:张立锋张禾
概述
如今有很多先容使用ASP完成静态分页的文章,办法迥然不同,就是每次使用ADO前往原始数据满意前提纪录会合的指定页。但在实践工程使用中,原始数据量一般很年夜,原始数据的加工对照慢,假如每次换页原始数据都要加工一次,则会严峻影呼应用程序运转的功能。
办理上述成绩次要有两种路子:一种路子是将查询前提绝对流动,使用绝对流动的查询前提对原始数据举行加工,天生一个小数据量的两头库,每次查询都对两头库举行操纵。如许固然会进步程序的功能,但会影响程序的天真性,并且Server端还需准时对原始数据举行加工保护。另外一个路子是在Server端保留查询的了局。如许固然不克不及改良查询的功能,但Client端换页时Server端可以很快呼应。第一种路子的完成对照复杂,本文先容第二种路子的完成办法。
完成办法
将Server真个查询了局保留在一个静态数组中,即在Session_OnStart过程当中声明一个二维的静态数组。当Server端收到Client端提交的请求后,起首判别请求是前提查询仍是换页,如是前提查询则辨别查询前提是不是与前次提交的查询前提分歧,如分歧则实行查询,将查询了局保留在该数组中,然后向Client端前往第一页的内容,不然间接从该数组中前往响应页的内容。
程序完成
1.界说二维数组及其他变量
SubSession_OnStart
dimTempDb()
redimPreserveTempDb(1,2)
session(“StoredArray")=TempDb
’界说一个Session数组
session(“iPageCount")=0
session(“iPageNo")=0
......
EndSub
2.挪用存储历程前往数据
SubGetRecordSet(strBbmc,strKssj,
strZzsj,strNodeCode,strFxzl)
参数为报表称号和各个限定前提
selectcasestrBbmc
case“买卖汇总表"
strCnn=“PROVIDER=MSDASQL;dsn=sqldb;
uid=sa;pwd=123456;database=vlog;"
Setobjcnn=Server.CreateObje(“ADODB.Connection")
objcnn.CommandTimeout=9999999
objcnn.ConnectionTimeout=99999999
objcnn.CursorLocation=adUseClient
objcnn.OpenstrCnn翻开毗连
SetobjRs=Server.CreateObject
(“ADODB.Recordset")
objRS.PageSize=iPageSize
objRS.CacheSize=iPageSize
objRs.Open“sszhatmlog‘“&strKssj&",
‘“&strZzsj&",‘“&strNodeCode&",
‘“&strFxzl&"",objcnn,adOpenStatic,
adLockReadOnly,1
’实行存储历程前往查询了局
......
EndSub
3.将查询了局保留到静态数组
SubSaveRecordSet()
ifobjRs.EOF=falsethen
objRs.movelast
session(“iRowCount")=objRs.recordCount
session(“iFieldCount")=objRs.Fields.Count
session(“iPageCount")=objRs.pagecount
redimPreserveTempArray(session
(“iRowCount"),session(“iFieldCount"))
’TempArray是一个二维静态数组,
依据纪录集巨细从头界说其巨细
objRs.MoveFirst
iCount=0
dowhileobjRs.EOF=false
iCount=iCount+1
fori=1tosession(“iFieldCount")
TempArray(iCount,i)=objRs.Fields.Item
(i-1).value
next
objRs.MoveNext
loop
session(“StoredArray")=TempArray
objRs.Close
else
session(“iPageCount")=0
endif
EndSub
4.显现纪录内容
SubShowRecord()
......
LocalArray=session(“StoredArray")
iShowTotal=(iPageCurrent-1)*iPageSize+1
iRowLoop=1
dowhileiRowLoop<=iPageSizeandiShowTotal
<=session(“iRowCount")
Response.Write(“<TR>")
fori=1Tosession(“iFieldCount")
Response.write(“<TD>"
&LocalArray(iShowTotal,i))Next
Response.Write(“</TR>")
iShowTotal=iShowTotal+1
iRowLoop=iRowLoop+1loop
Response.Write(“</TABLE>")
ifiPageCurrent1and
iPageCurrent<session
(“iPageCount")then
%>
<center><AHREF=“db_pag.asp?page=<%=
iPageCurrent-1%>">前一页</A><AHREF=
“db_pag.asp?page=<%=iPageCurrent+1%>">
后一页</A></center>
<%
else
ifiPageCurrent1then
%>
<center><AHREF=“db_pag.asp?page=<%=
iPageCurrent-1%>">前一页</A></center>
<%
endif
ifiPageCurrent<session(“iPageCount")then
%>
<center><AHREF=“db_pag.asp?page=
<%=iPageCurrent+1%>">后一页</A>
</center>
<%
endif
endif
EndSub
5.主程序
ifRequest.QueryString(“page")=“"then
’提交查询请求而且查询前提与上一次分歧
......
callGetRecordSet(strBbmc,strKssj,strZzsj,
strNodeCode,strFxzl)
callSaveRecordSet
Else
iPageCurrent=CInt(Request.QueryStr</p>Windows本身的所有问题都会一成不变的也累加到了它的身上。安全性、稳定性、跨平台性都会因为与NT的捆绑而显现出来;
作者:
活着的死人
时间:
2015-1-20 09:32
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。
作者:
山那边是海
时间:
2015-1-25 17:21
我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
作者:
简单生活
时间:
2015-1-25 19:24
交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。
作者:
爱飞
时间:
2015-1-31 22:43
另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)
作者:
透明
时间:
2015-2-19 05:44
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。
作者:
分手快乐
时间:
2015-3-6 13:17
完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
作者:
变相怪杰
时间:
2015-3-13 01:08
不能只是将它停留在纸上谈兵的程度上。
作者:
海妖
时间:
2015-3-20 08:31
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2