|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在实现ERP等高端的ASP应用时,用户需要提供核心的经营资料,需要ASP商有很高的信用度。楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。
呵呵,能够进精髓区吗?用了我一天的工夫。
两位张兄的<<在ASP中改良静态分页的功能>>一文给我很年夜的启示,在此暗示感激,但在我想来仍是有一些不敷的中央。
一是没法反响一些随更新的信息。
加设现为一BBS,那末随时更新的信息有
每一个贴子的点击
新加贴子的信息,这些在两位张兄兄的计划中没法主动更新,只要用户在变动查询时才干利用。
二是内存利用太多,现实上关于一个论坛来说,年夜多半人仍是按按次来会见的,没有需要每一个人一个session。
三是处置数据时不便利
只能用数组的体例来举行,不直不雅,可读性差。
关于以上几点,我提出以下改善计划
一利用application,可做到多人配合利用统一数据
二只存进和掏出ID号,别的数据做第二次select
三主动删除过期的application以勤俭内存.
四在增加和删除数据时,从头导进数据
别的优点
呵呵,可使用getstring()了,本来分页时不可的
能够不必1,3了,
代码以下
a_page.asp
-----------------------------------------------------------------
<%
dimapage_pagesize每页纪录数
dimapage_Count总计纪录数
dimapage_PageCount总页数
dimapage_PageForm跳页用的Form
dimapage_PageUrl上一页下一页的链接
dimapage_timeout过时工夫设置(秒)
apage_timeout=300过时工夫设置(秒)
apage_pagesize=20
functionapage_bactive(str_name)判别是不是有这个工具,并删除过时工具
apage_bactive=false
dimitem,s_temp
foritem=1toApplication.contents.count找出一切的Application
s_temp=Application.contents(item)
ifisarray(s_temp)then
ifubound(s_temp)=3ands_temp(0)="apage"then
ifs_temp(1)=str_namethen
apage_bactive=true请求工具存在
else
ifDateDiff("s",s_temp(2),now())>apage_timeoutthen删除过其工具
Application.contents.remove(item)
endif
endif
endif
endif
next
endfunction??b_inuser
subapage_open(str_name,str_table,str_id,str_sqlend)翻开工具并盘算一些数据
工具名,表名,?关头字名,查询前提
dima1,a_ob
ifnotapage_bactive(str_name)then如工具不存在则新建一工具
apage_loadstr_name,str_table,str_id,str_sqlend
endif
a1=application(str_name)
a1(2)=now()
application.lock
application(str_name)=a1
application.unlock
a_ob=a1(3)
apage_Count=ubound(a_ob,2)+1
apage_PageCount=int(apage_Count/apage_pagesize)+1
endsubapage_open
functionapage_get(str_name,page)失掉本页的一切id号
dima1,a_ob,i_stat,i_end,i1,str_actionurl,str_query,str_1,str_2
以下为包管page是准确的
page=cint(page)
ifpage<1thenpage=1
ifpage>apage_PageCountthenpage=apage_PageCount
失掉id号
apage_get=""
a1=application(str_name)
a_ob=a1(3)
i_stat=(page-1)*apage_pagesize
i_end=page*apage_pagesize-1
ifi_end>(apage_Count-1)then
i_end=apage_Count-1
endif
fori1=i_stattoi_end
apage_get=apage_get&a_ob(0,i1)&","
next
往失落过剩的","号
iflen(apage_get)>0then
apage_get=left(apage_get,len(apage_get)-1)
endif
以下为失掉用户换页信息
str_actionurl="http://"&Request.ServerVariables("HTTP_HOST")&Request.ServerVariables("SCRIPT_NAME")
str_query=Request.ServerVariables("QUERY_STRING")
str_1=split(str_query,"&")
str_query=""
fori1=0toubound(str_1)
ifleft(str_1(i1),5)"page="then
response.writeleft(str_1(i1),5)&"<br>"
str_query=str_query&str_1(i1)&"&"
endif
next
str_2=str_actionurl&"?"&str_query
ifpage>1then
apage_PageUrl="<ahref="&str_2&"page=1"&">首页</a>"&_
"<ahref="&str_2&"page="&(page-1)&">前页</a>"
else
apage_PageUrl="首页前页"
endif
ifpage<apage_PageCountthen
apage_PageUrl=apage_PageUrl&"<ahref="&str_2&"page="&(page+1)&">后页</a>"&_
"<ahref="&str_2&"page="&apage_PageCount&">尾页</a>"
else
apage_PageUrl=apage_PageUrl&"后页尾页"
endif
apage_PageForm="<table><formmethod=getname=pageonsubmit=document.location="""&str_2&"page=""+this.page.value;returnfalse;>"&_
"<tr><td>转到第<INPUTTYPE=textNAME=pagevalue="&page&">页"&_
"<INPUTtype=submitstyle=font-size:9ptvalue=GO></table>"
endfunction
subapage_load(str_name,str_table,str_id,str_sqlend)新建或从头导进一工具
sql="select"&str_id&"from"&str_table&str_sqlend
setrs=conn.execute(sql)
dima2(3)
a2(0)="apage"
a2(1)=str_name
a2(2)=now()
a2(3)=rs.getrows()
application.lock
application(str_name)=a2
application.unlock
endsubapage_load
subapage_update(str_name,str_table,str_id,str_sqlend)更新数据时利用
ifapage_bactive(str_name)then如工具存在则从头导进工具
apage_loadstr_name,str_table,str_id,str_sqlend
endif
endsub
%>
附:test.asp
----------------------------------------------------------------------
<!--#includefile="conn.asp"-->
<!--#includefile="a_page.asp"-->
<%
建表
createtablepage
(page_idINT?notnullIDENTITY(1,1),
page_valueintnotnull,
class_idintnotnull
)
subadd_test到场测试用数据
dimi1asint
fori1=0to1000
sql="insertintopage(page_value,class_id)values("&i1&",1)"
conn.executesql
next
fori1=0to1000
sql="insertintopage(page_value,class_id)values("&i1&",2)"
conn.executesql
next
apage_update"test","page","page_id",""
apage_update"test1","page","page_id","whereclass_id=1"
endsubadd_test
add_test要到场时往失落
dimstr_test
apage_open"test","page","page_id",""
apage_open"test1","page","page_id","whereclass_id=1"
str_test=apage_get("test",request("page"))
str_test=apage_get("test1",request("page"))
sql="select??*frompagewherepage_idin("&str_test&")"
setrs=conn.execute(sql)
response.writeresponse.write"<tableborder=1><tr><td>"&rs.getstring(2,,"<td>","<tr><td>")&"</table>"
或可
whilenotrs.eof
response.write"<ahref=hahafish.asp?id="&rs("page_id")&">"&rs("page_value")&"</a><br>"
rs.movenext
wend
response.writeapage_PageUrl
response.writeapage_pageform
%>
使用filesystemobject,可以对服务器上的文件进行操作,浏览、复制、移动、删除等。有ado的支持,asp对数据库的操作非常得心应手。你甚至可以像使用本地数据库那样,管理远程主机上的数据库,对表格、记录进行各种操作。 |
|