doface (งานต้นฉบับ)
เมื่อพูดถึง ASP หลายๆ คนคงคิดว่าเป็นชุดของสคริปต์ HTML โค้ดบางอันอยู่ใน <% และ %> และสคริปต์ JAVASCRIPT บางตัว แล้วจึงเพิ่มความคิดเห็นทุกประเภทในรูปแบบต่างๆ ดูเหมือนคำเดียว: ความสับสนวุ่นวาย ไม่สำคัญว่าผู้อื่นจะเข้าใจหรือไม่ ตราบใดที่สามารถบรรลุวัตถุประสงค์ของตนเองได้ เนื่องจากโค้ด ASP ก็เป็นสคริปต์เช่นกัน จึงเป็นไปไม่ได้ที่ลูกค้าจะไม่เห็นเนื้อหานั้นมักจะรวมอยู่ในส่วนหนึ่ง ของธุรกิจใน DLL แต่ฉันยังคงรู้สึกว่าโค้ด ASP เป็นโค้ดที่มีค่าน้อยที่สุดไม่มีใครกลับไปซื้อมันได้เสมอ รหัสจากเว็บไซต์ของผู้อื่น เหตุผลเหล่านี้ทำให้ ASP พัฒนาเป็นโค้ดที่เขียนง่ายและลืมได้อย่างรวดเร็ว ความสามารถในการอ่านและการบำรุงรักษายังแย่ที่สุดในบรรดาภาษาต่างๆ
ในความเป็นจริง โค้ด ASP ยังสามารถเป็นแบบเชิงวัตถุและโมดูลาร์ได้เหมือนกับภาษาอื่นๆ สามารถรวมเพจจำนวนมากและห่อหุ้มไว้ในคลาสได้ และคุณสามารถใช้วิธีการต่างๆ ในคลาสเพื่อแสดงเพจต่างๆ ภายใต้ตรรกะทางธุรกิจเดียวกันกับตรรกะถูกห่อหุ้มเป็นคลาสและนำไปใช้งานโดยใช้วิธีการที่แตกต่างกัน พูดมากบางทีความคิดของทุกคนอาจสับสน ผมขอยกตัวอย่าง:
<%
'****************************************
'* ชื่อคลาส: clsWebWorkFlowLog
'* ฟังก์ชั่น :คลาสการติดตามบันทึกเวิร์กโฟลว์
'* ประวัติ:
'* สร้างโดย: doface
'* วันที่: 2003/10/24 Ver 1.0
'* การเปลี่ยนแปลง:
'* วันที่:
'*************** * ***********************
คลาส clsWebWorkFlowLog
'กำหนดคุณสมบัติสาธารณะเพื่อจัดเก็บวัตถุการเชื่อมต่อ
ActiveConnection สาธารณะ
การตอบสนองส่วนตัว
-
'= ชื่อกระบวนการ: main
'= พารามิเตอร์:
'= ฟังก์ชั่น: ฟังก์ชั่นการโทรหลัก
'= ดำเนินการที่แตกต่างกันตามพารามิเตอร์การกระทำที่แตกต่างกัน
'= ค่าส่งคืน:
-
หลักย่อย ()
เลือกกรณีคำขอ ("กระทำ")
กรณี "รายการ"
รายการ()
กรณีอื่น
รายการ()
สิ้นสุดการเลือก
จบย่อย
-
'= ชื่อกระบวนการ: รายการ
'= พารามิเตอร์:
'= ฟังก์ชั่น: แสดงรายการหน้าจอ
'= ค่าส่งคืน:
-
รายการย่อย()
หรือ
ตั้งค่า oRs = ActiveConnection.execute("select *,(เลือกชื่อจาก wf_config โดยที่ id=w.wf_id) เป็น wfname จาก wf_log w โดยที่ step_id=1 และ user_id=" & session("usr")("uid"))
'(เลือก * จาก wf_log โดยที่ id ใน (เลือก max(id),wf_id,tab_id,rec_id จากกลุ่ม wf_log โดย wf_id,tab_id,rec_id โดยที่ wf_id= และ 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">สถานะ</font></td>
<td bgColor="#808080" height="15"><font color="#FFFFFF">การทำงาน</font></td>
</tr><%
ทำในขณะที่ไม่ใช่ oRs.eof
maxID สลัว Next_id
ถ้า glbFunc.getMaxID(oRs("id").value,ActiveConnection,maxID,Next_id) แล้ว
%><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="รายละเอียด" 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><%
สิ้นสุดถ้า
%></tr><%
หรือRs.movenenext
วนซ้ำ
%></table>
</center>
-
จบย่อย
จบคลาส
-
'* เลิกเรียนแล้ว
-
-
'เริ่มต้นหน้า ASP'
'******************************************
'ส่งออกส่วนหัว HTML มาตรฐาน
glbFunc.writeHEAD
หรี่แสง oWebWorkFlowLog
ตั้งค่า oWebWorkFlowLog = clsWebWorkFlowLog ใหม่
ตั้งค่า oWebWorkFlowLog.ActiveConnection = glbFunc.getADOConnection
oWebWorkFlowLog.main
glbFunc.writeTail()
-
สามารถเพิ่มเมธอดเพิ่มเติมได้เพื่อให้คลาสเดียวนี้สามารถทำหน้าที่ของไฟล์ ASP ก่อนหน้าหลายไฟล์ได้ เมื่อเข้าถึง คุณสามารถแยกแยะได้โดยการเพิ่มพารามิเตอร์ (ฟังก์ชันที่คุณต้องการเข้าถึง) หลัง .ASP