提起asp很多人就認(rèn)為是一堆html腳本和被括在%和%>之中的一些代碼還有就是一些javascript腳本等籌在一起的一些代碼的集合,這樣的代碼,再加上各類的不同格式的注釋,看起來就一個字:亂。也不管別人能不能看得懂,只要是能實現(xiàn)自己的目的就可以了,因為asp的代碼也是腳本,給了客戶也不可能不被人看到其中的內(nèi)容,經(jīng)多包容在dll中一部分業(yè)務(wù)邏輯,但是還是覺得asp代碼是最不值錢的代碼,沒有人回去購買,可以隨時從別人的網(wǎng)站中查看源碼的形式得到別人辛辛苦苦編寫出來的獨特風(fēng)格的東東。這些原因使asp的發(fā)展成為了一種編的快忘的也快的代碼,可讀性,維護(hù)性也是各種語言中最為差的代碼。 其實,asp代碼也可以像其他語言一樣的面向?qū)ο螅K化,將很多頁面集成封裝到一個類中,運用類中的不同方法來顯示不同的頁面,這樣你可以將同一業(yè)務(wù)邏輯下的頁面和邏輯封裝到一個類里,用不同的方法來實現(xiàn)。說了這么多,可能大家的思路都亂了,趕快給大家一點范例來看看: % '**************************************** '* 類名:clswebworkflowlog '* 功能:工作流日志跟蹤類 '**************************************** class clswebworkflowlog '定義公開屬性存放connection對象 public activeconnection
private oresponse
'======================================== '= 過程名:main '= 參 數(shù): '= 功 能:主調(diào)函數(shù) '= 根據(jù)不同動作參數(shù)執(zhí)行不同的操作 '= 返回值: '======================================== sub main() select case request("act") case "list" list() case else list() end select end sub
'======================================== '= 過程名:list '= 參 數(shù): '= 功 能:顯示列表畫面 '= 返回值: '======================================== 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">流程名稱/font>/td> td bgcolor="#808080" height="15">font color="#ffffff">申請人/font>/td> td bgcolor="#808080" height="15">font color="#ffffff">申請時間/font>/td> td bgcolor="#808080" height="15">font color="#ffffff">完成時間/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")%>nbsp;/td> td bgcolor="#ffffff" height="19">%=ors("exetime")%>nbsp;/td> td bgcolor="#ffffff" height="19">nbsp;/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=viewtab_id=%=ors("tab_id")%>id=%=ors("rec_id")%>">img src="../images/action/view.gif" border="0" alt="詳細(xì)" width="16" height="16">/a>nbsp;a href="javascript:newin('wfimage.asp?act=listid=%=ors("wf_id")%>bz=1step_id=%=next_id%>',true,false,false,false,true);">img src="../images/action/lcchuli.gif" border="0" alt="流程追蹤" width="16" height="16">/a>nbsp;/p>/td>% end if %>/tr>% ors.movenext loop %>/table> /center> % end sub
end class '**************************************** '* 類結(jié)束 '****************************************
'**************************************** 'asp頁面開始 '**************************************** '輸出標(biāo)準(zhǔn)html頭 glbfunc.writehead dim owebworkflowlog set owebworkflowlog = new clswebworkflowlog set owebworkflowlog.activeconnection = glbfunc.getadoconnection owebworkflowlog.main glbfunc.writetail() %> 可以添加更多的方法,這樣這一個類就能完成以前多個asp文件的功能。訪問的時候,在 .asp之后加上參數(shù)(要訪問哪個函數(shù))即可區(qū)分出來。