ASP代碼的對(duì)象化
更新時(shí)間:2006年10月12日 00:00:00 作者:
提起asp很多人就認(rèn)為是一堆html腳本和被括在<%和%>之中的一些代碼還有就是一些javascript腳本等籌在一起的一些代碼的集合,這樣的代碼,再加上各類(lèi)的不同格式的注釋?zhuān)雌饋?lái)就一個(gè)字:亂。也不管別人能不能看得懂,只要是能實(shí)現(xiàn)自己的目的就可以了,因?yàn)閍sp的代碼也是腳本,給了客戶(hù)也不可能不被人看到其中的內(nèi)容,經(jīng)多包容在dll中一部分業(yè)務(wù)邏輯,但是還是覺(jué)得asp代碼是最不值錢(qián)的代碼,沒(méi)有人回去購(gòu)買(mǎi),可以隨時(shí)從別人的網(wǎng)站中查看源碼的形式得到別人辛辛苦苦編寫(xiě)出來(lái)的獨(dú)特風(fēng)格的東東。這些原因使asp的發(fā)展成為了一種編的快忘的也快的代碼,可讀性,維護(hù)性也是各種語(yǔ)言中最為差的代碼。
其實(shí),asp代碼也可以像其他語(yǔ)言一樣的面向?qū)ο螅K化,將很多頁(yè)面集成封裝到一個(gè)類(lèi)中,運(yùn)用類(lèi)中的不同方法來(lái)顯示不同的頁(yè)面,這樣你可以將同一業(yè)務(wù)邏輯下的頁(yè)面和邏輯封裝到一個(gè)類(lèi)里,用不同的方法來(lái)實(shí)現(xiàn)。說(shuō)了這么多,可能大家的思路都亂了,趕快給大家一點(diǎn)范例來(lái)看看:
<%
'****************************************
'* 類(lèi)名:clswebworkflowlog
'* 功能:工作流日志跟蹤類(lèi)
'****************************************
class clswebworkflowlog
'定義公開(kāi)屬性存放connection對(duì)象
public activeconnection
private oresponse
'========================================
'= 過(guò)程名:main
'= 參 數(shù):
'= 功 能:主調(diào)函數(shù)
'= 根據(jù)不同動(dòng)作參數(shù)執(zhí)行不同的操作
'= 返回值:
'========================================
sub main()
select case request("act")
case "list"
list()
case else
list()
end select
end sub
'========================================
'= 過(guò)程名:list
'= 參 數(shù):
'= 功 能:顯示列表畫(huà)面
'= 返回值:
'========================================
sub list()
dim ors
set ors = activeconnection.execute("select *,(select name from wf_config where id=w.wf_id) as wfname from wf_log w where step_id=1 and user_id=" & session("usr")("uid"))
'(select * from wf_log where id in (select max(id),wf_id,tab_id,rec_id from wf_log group by wf_id,tab_id,rec_id where wf_id= and tab_id=))
%> <p align="left"><img border="0" src="../images/desk/workflow-new.gif" width="32" height="32"><font color="#ff0000"><b>待辦事宜:</b></font></p>
<center>
<table bgcolor="#ffffff" border="1" bordercolordark="#ffffff" bordercolorlight="#c0c0c0" cellspacing="0" width="99%" height="25">
<tr>
<td bgcolor="#808080" height="15"><font color="#ffffff">流程名稱(chēng)</font></td>
<td bgcolor="#808080" height="15"><font color="#ffffff">申請(qǐng)人</font></td>
<td bgcolor="#808080" height="15"><font color="#ffffff">申請(qǐng)時(shí)間</font></td>
<td bgcolor="#808080" height="15"><font color="#ffffff">完成時(shí)間</font></td>
<td bgcolor="#808080" height="15"><font color="#ffffff">狀態(tài)</font></td>
<td bgcolor="#808080" height="15"><font color="#ffffff">操作</font></td>
</tr><%
do while not ors.eof
dim maxid,next_id
if glbfunc.getmaxid(ors("id").value,activeconnection,maxid,next_id) then
%><tr>
<td bgcolor="#ffffff" height="19"><%=ors("wfname")%></a></td>
<td bgcolor="#ffffff" height="19"><%=session("usr")("name")%> </td>
<td bgcolor="#ffffff" height="19"><%=ors("exetime")%> </td>
<td bgcolor="#ffffff" height="19"> </td>
<td bgcolor="#ffffff" height="19"><%=glbfunc.getcurzt(ors("id").value,activeconnection)%></td>
<td bgcolor="#ffffff" height="19"><p align="left"><a href="../pubexetab/pubexetab.asp?act=view&tab_id=<%=ors("tab_id")%>&id=<%=ors("rec_id")%>"><img src="../images/action/view.gif" border="0" alt="詳細(xì)" width="16" height="16"></a> <a href="javascript:newin('wfimage.asp?act=list&id=<%=ors("wf_id")%>&bz=1&step_id=<%=next_id%>',true,false,false,false,true);"><img src="../images/action/lcchuli.gif" border="0" alt="流程追蹤" width="16" height="16"></a> </p></td><%
end if
%></tr><%
ors.movenext
loop
%></table>
</center>
<%
end sub
end class
'****************************************
'* 類(lèi)結(jié)束
'****************************************
'****************************************
'asp頁(yè)面開(kāi)始
'****************************************
'輸出標(biāo)準(zhǔn)html頭
glbfunc.writehead
dim owebworkflowlog
set owebworkflowlog = new clswebworkflowlog
set owebworkflowlog.activeconnection = glbfunc.getadoconnection
owebworkflowlog.main
glbfunc.writetail()
%>
可以添加更多的方法,這樣這一個(gè)類(lèi)就能完成以前多個(gè)asp文件的功能。訪問(wèn)的時(shí)候,在 .asp之后加上參數(shù)(要訪問(wèn)哪個(gè)函數(shù))即可區(qū)分出來(lái)。
其實(shí),asp代碼也可以像其他語(yǔ)言一樣的面向?qū)ο螅K化,將很多頁(yè)面集成封裝到一個(gè)類(lèi)中,運(yùn)用類(lèi)中的不同方法來(lái)顯示不同的頁(yè)面,這樣你可以將同一業(yè)務(wù)邏輯下的頁(yè)面和邏輯封裝到一個(gè)類(lèi)里,用不同的方法來(lái)實(shí)現(xiàn)。說(shuō)了這么多,可能大家的思路都亂了,趕快給大家一點(diǎn)范例來(lái)看看:
<%
'****************************************
'* 類(lèi)名:clswebworkflowlog
'* 功能:工作流日志跟蹤類(lèi)
'****************************************
class clswebworkflowlog
'定義公開(kāi)屬性存放connection對(duì)象
public activeconnection
private oresponse
'========================================
'= 過(guò)程名:main
'= 參 數(shù):
'= 功 能:主調(diào)函數(shù)
'= 根據(jù)不同動(dòng)作參數(shù)執(zhí)行不同的操作
'= 返回值:
'========================================
sub main()
select case request("act")
case "list"
list()
case else
list()
end select
end sub
'========================================
'= 過(guò)程名:list
'= 參 數(shù):
'= 功 能:顯示列表畫(huà)面
'= 返回值:
'========================================
sub list()
dim ors
set ors = activeconnection.execute("select *,(select name from wf_config where id=w.wf_id) as wfname from wf_log w where step_id=1 and user_id=" & session("usr")("uid"))
'(select * from wf_log where id in (select max(id),wf_id,tab_id,rec_id from wf_log group by wf_id,tab_id,rec_id where wf_id= and tab_id=))
%> <p align="left"><img border="0" src="../images/desk/workflow-new.gif" width="32" height="32"><font color="#ff0000"><b>待辦事宜:</b></font></p>
<center>
<table bgcolor="#ffffff" border="1" bordercolordark="#ffffff" bordercolorlight="#c0c0c0" cellspacing="0" width="99%" height="25">
<tr>
<td bgcolor="#808080" height="15"><font color="#ffffff">流程名稱(chēng)</font></td>
<td bgcolor="#808080" height="15"><font color="#ffffff">申請(qǐng)人</font></td>
<td bgcolor="#808080" height="15"><font color="#ffffff">申請(qǐng)時(shí)間</font></td>
<td bgcolor="#808080" height="15"><font color="#ffffff">完成時(shí)間</font></td>
<td bgcolor="#808080" height="15"><font color="#ffffff">狀態(tài)</font></td>
<td bgcolor="#808080" height="15"><font color="#ffffff">操作</font></td>
</tr><%
do while not ors.eof
dim maxid,next_id
if glbfunc.getmaxid(ors("id").value,activeconnection,maxid,next_id) then
%><tr>
<td bgcolor="#ffffff" height="19"><%=ors("wfname")%></a></td>
<td bgcolor="#ffffff" height="19"><%=session("usr")("name")%> </td>
<td bgcolor="#ffffff" height="19"><%=ors("exetime")%> </td>
<td bgcolor="#ffffff" height="19"> </td>
<td bgcolor="#ffffff" height="19"><%=glbfunc.getcurzt(ors("id").value,activeconnection)%></td>
<td bgcolor="#ffffff" height="19"><p align="left"><a href="../pubexetab/pubexetab.asp?act=view&tab_id=<%=ors("tab_id")%>&id=<%=ors("rec_id")%>"><img src="../images/action/view.gif" border="0" alt="詳細(xì)" width="16" height="16"></a> <a href="javascript:newin('wfimage.asp?act=list&id=<%=ors("wf_id")%>&bz=1&step_id=<%=next_id%>',true,false,false,false,true);"><img src="../images/action/lcchuli.gif" border="0" alt="流程追蹤" width="16" height="16"></a> </p></td><%
end if
%></tr><%
ors.movenext
loop
%></table>
</center>
<%
end sub
end class
'****************************************
'* 類(lèi)結(jié)束
'****************************************
'****************************************
'asp頁(yè)面開(kāi)始
'****************************************
'輸出標(biāo)準(zhǔn)html頭
glbfunc.writehead
dim owebworkflowlog
set owebworkflowlog = new clswebworkflowlog
set owebworkflowlog.activeconnection = glbfunc.getadoconnection
owebworkflowlog.main
glbfunc.writetail()
%>
可以添加更多的方法,這樣這一個(gè)類(lèi)就能完成以前多個(gè)asp文件的功能。訪問(wèn)的時(shí)候,在 .asp之后加上參數(shù)(要訪問(wèn)哪個(gè)函數(shù))即可區(qū)分出來(lái)。
相關(guān)文章
不用WinRar只有asp將網(wǎng)絡(luò)空間上的文件打包下載
非常不錯(cuò)的asp代碼,此方法,不建議壓縮,大文件,一般的小文件壓幾個(gè)還很好用的2008-08-08ASP下實(shí)現(xiàn)自動(dòng)采集程序及入庫(kù)的代碼
ASP下實(shí)現(xiàn)自動(dòng)采集程序及入庫(kù)的代碼...2007-03-03ASP正則表達(dá)式清除HTML指定標(biāo)簽的方法
這篇文章主要介紹了ASP正則表達(dá)式清除HTML指定標(biāo)簽的方法,告訴大家如何精準(zhǔn)的過(guò)濾掉某些特定的屬性標(biāo)簽和參數(shù),感興趣的小伙伴們可以參考一下2015-09-09CJJ專(zhuān)用ASP類(lèi)庫(kù)中的某個(gè)class
CJJ專(zhuān)用ASP類(lèi)庫(kù)中的某個(gè)class...2006-07-07asp提示無(wú)效使用?Null:?Replace的解決方法
這篇文章主要介紹了asp提示無(wú)效使用?Null:?Replace,需要的朋友可以參考下2014-12-12利用AdoDb.Stream對(duì)象來(lái)讀取UTF-8格式的文本文件
利用AdoDb.Stream對(duì)象來(lái)讀取UTF-8格式的文本文件...2006-10-10