ASP代碼的對象化

來源:互聯網
上載者:User
  提起ASP很多人就認為是一堆HTML指令碼和被括在<%和%>之中的一些代碼還有就是一些javascript指令碼等籌在一起的一些代碼的集合,這樣的代碼,再加上各類的不同格式的注釋,看起來就一個字:亂。也不管別人能不能看得懂,只要是能實現自己的目的就可以了。

  因為ASP的代碼也是指令碼,給了客戶也不可能不被人看到其中的內容,經多包容在DLL中一部分商務邏輯,但是還是覺得ASP代碼是最不值錢的代碼,沒有人回去購買,可以隨時從別人的網站中查看源碼的形式得到別人辛辛苦苦編寫出來的獨特風格的東東。這些原因使ASP的發展成為了一種編的快忘的也快的代碼,可讀性,維護性也是各種語言中最為差的代碼。

     其實,ASP代碼也可以像其他語言一樣的物件導向,模組化,將很多頁面整合封裝到一個類中,運用類中的不同方法來顯示不同的頁面,這樣你可以將同一商務邏輯下的頁面和邏輯封裝到一個類裡,用不同的方法來實現。說了這麼多,可能大家的思路都亂了,趕快給大家一點範例來看看:

 <%
'****************************************

'* 類名:clsWebWorkFlowLog    

'* 功能:工作流程日誌跟蹤類

'* History:      

'*  作成:doface    

'*  日期:2003/10/24 Ver 1.0 

'*  改動:               

'*  日期:

'****************************************

class clsWebWorkFlowLog

 '定義公開屬性存放Connection對象
 public ActiveConnection
 
 private oResponse
 
 '========================================
 '= 過程名:main
 '= 參  數:
 '= 功 能:主調函數
 '=   根據不同動作參數執行不同的操作
 '= 傳回值:
 '========================================
 sub main()
  select case Request("act")

   case "list"
    list()
   case else
    list()
  end select
 end sub
 
 '========================================
 '= 過程名:list
 '= 參  數:
 '= 功 能:顯示列表畫面
 '= 傳回值:
 '========================================
 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="http://edu.cnzz.cn/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">狀態</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="http://edu.cnzz.cn/images/action/view.gif" border="0" alt="詳細" 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="http://edu.cnzz.cn/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
'****************************************
'* 類結束                              
'****************************************
'****************************************
'ASP頁面開始      
'****************************************

'輸出標準HTML頭
glbFunc.writeHEAD

dim oWebWorkFlowLog
set oWebWorkFlowLog = new clsWebWorkFlowLog
set oWebWorkFlowLog.ActiveConnection = glbFunc.getADOConnection

oWebWorkFlowLog.main

glbFunc.writeTail()
%>
 
  可以添加更多的方法,這樣這一個類就能完成以前多個ASP檔案的功能。訪問的時候,在 .ASP之後加上參數(要訪問哪個函數)即可區分出來。



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。