doface (العمل الأصلي)
عند الحديث عن ASP، يعتقد الكثير من الناس أنه عبارة عن مجموعة من نصوص HTML، وبعض الأكواد محاطة بـ <% و%>، وبعض نصوص JAVASCRIPT مثل هذه الأكواد، ثم إضافة جميع أنواع التعليقات بتنسيقات مختلفة تبدو وكأنها كلمة واحدة: الفوضى. لا يهم ما إذا كان بإمكان الآخرين فهمه أم لا، طالما أنه يمكنه تحقيق غرضه الخاص، نظرًا لأن كود ASP هو أيضًا برنامج نصي، فمن المستحيل على العملاء عدم رؤية المحتوى غالبًا ما يتم تضمينه في جزء منه الأعمال في منطق DLL، لكنني ما زلت أشعر أن كود ASP هو الكود الأقل قيمة، ولا أحد يعود لشرائه. يمكنك دائمًا الحصول على النمط الفريد للأشياء التي بذل الآخرون قصارى جهدهم في كتابتها من خلال عرض المصدر رمز من مواقع الآخرين. هذه الأسباب جعلت ASP يتطور إلى كود يسهل كتابته ونسيانه بسرعة، كما أن سهولة القراءة وقابلية الصيانة هي الأسوأ بين اللغات المختلفة.
في الواقع، يمكن أيضًا أن يكون كود ASP موجهًا للكائنات ومعياريًا مثل اللغات الأخرى، حيث يمكن دمج العديد من الصفحات وتغليفها في فئة ما، ويمكن استخدام طرق مختلفة في الفصل لعرض صفحات مختلفة تحت نفس منطق العمل، يتم تغليف المنطق في فئة وتنفيذه باستخدام طرق مختلفة. بعد أن قلت الكثير، ربما تكون أفكار الجميع مشوشة، دعني أعطيك بعض الأمثلة:
<%.
'****************************************
'* اسم الفئة: clsWebWorkFlowLog
'* الوظيفة :فئة تتبع سجل سير العمل
'* التاريخ:
'* تم الإنشاء بواسطة: doface
'* التاريخ: 2003/10/24 الإصدار 1.0
'* التغييرات:
'* التاريخ:
'*************** * ***********************
فئة clsWebWorkFlowLog
'تحديد الخصائص العامة لتخزين كائنات الاتصال
الاتصال النشط العام
رد خاص
'=====================================================================
'= اسم العملية: 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 حيث يوجد المعرف (اختر 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%" ارتفاع = "25">
<تر>
<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
خافت الحد الأقصى،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><%
oRs.movenext
حلقة
%></الجدول>
</المركز>
<%
النهاية الفرعية
نهاية الطبقة
'*********************************************************************************************************************************************************
'* نهاية الفصل
'*********************************************************************************************************************************************************
'*********************************************************************************************************************************************************
'تبدأ صفحة ASP
'******************************************
'إخراج رأس HTML القياسي
glbFunc.writeHEAD
خافت oWebWorkFlowLog
set oWebWorkFlowLog = new clsWebWorkFlowLog
تعيين oWebWorkFlowLog.ActiveConnection = glbFunc.getADOConnection
oWebWorkFlowLog.main
glbFunc.writeTail()
%>
يمكن إضافة المزيد من الأساليب حتى تتمكن هذه الفئة من إكمال وظائف ملفات ASP المتعددة السابقة. عند الوصول، يمكنك تمييزه عن طريق إضافة المعلمات (الوظيفة التي تريد الوصول إليها) بعد .ASP.