ASP教程之ASP中的Debug类(VBScript)
无法实现跨操作系统的应用。当然这也是微软的理由之一,只有这样才能发挥ASP最佳的能力。可是我却认为正是Windows限制了ASP,ASP的概念本就是为一个能让系统运行于一个大的多样化环境而设计的;debug|vbscript不晓得用ASP写代码的伴侣是否是和我有一样的感觉,ASP中最头疼的就是调试程序的时分不便利,我想大概良多伴侣城市用如许的办法“response.write”,然后输入相干的语句来看看是不是准确。头几天写了一个千行的页面,内里也许有七八个SUB/FUNCTION,调试的时分用了有三十几个response.write,天,调试完后把这三十个一个个删除,累!明天看到一个ASP中的Debug类(VBS),试用了一下,尽!
利用办法很复杂:
test.asp
<!--#INCLUDEFILE="debuggingConsole.asp"-->
<%
output="XXXX"
Setdebugstr=NewdebuggingConsole
debugstr.Enabled=true
debugstr.Print"参数output的值",output
……
debugstr.draw
Setdebugstr=Nothing
%>
===================================================
debuggingConsole.asp
<%
ClassdebuggingConsole
privatedbg_Enabled
privatedbg_Show
privatedbg_RequestTime
privatedbg_FinishTime
privatedbg_Data
privatedbg_DB_Data
privatedbg_AllVars
privatedbg_Show_default
privateDivSets(2)
Construktor=>setthedefaultvalues
PrivateSubClass_Initialize()
dbg_RequestTime=Now()
dbg_AllVars=false
Setdbg_Data=Server.CreateObject("Scripting.Dictionary")
DivSets(0)="<TR><TDstyle=cursor:hand;onclick=""javascript:if(document.getElementById(data#sectname#).style.display==none){document.getElementById(data#sectname#).style.display=block;}else{document.getElementById(data#sectname#).style.display=none;}""><DIVid=sect#sectname#style=""font-weight:bold;cursor:hand;background:#7EA5D7;color:white;padding-left:4;padding-right:4;padding-bottom:2;"">|#title#|<DIVid=data#sectname#style=""cursor:text;display:none;background:#FFFFFF;padding-left:8;""onclick=""window.event.cancelBubble=true;"">|#data#|</DIV>|</DIV>|"
DivSets(1)="<TR><TD><DIVid=sect#sectname#style=""font-weight:bold;cursor:hand;background:#7EA5D7;color:white;padding-left:4;padding-right:4;padding-bottom:2;""onclick=""javascript:if(document.getElementById(data#sectname#).style.display==none){document.getElementById(data#sectname#).style.display=block;}else{document.getElementById(data#sectname#).style.display=none;}"">|#title#|<DIVid=data#sectname#style=""cursor:text;display:block;background:#FFFFFF;padding-left:8;""onclick=""window.event.cancelBubble=true;"">|#data#|</DIV>|</DIV>|"
DivSets(2)="<TR><TD><DIVid=sect#sectname#style=""background:#7EA5D7;color:lightsteelblue;padding-left:4;padding-right:4;padding-bottom:2;"">|#title#|<DIVid=data#sectname#style=""display:none;background:lightsteelblue;padding-left:8"">|#data#|</DIV>|</DIV>|"
dbg_Show_default="0,0,0,0,0,0,0,0,0,0,0"
EndSub
PublicPropertyLetEnabled(bNewValue)Sets"enabled"totrueorfalse
dbg_Enabled=bNewValue
EndProperty
PublicPropertyGetEnabledGetsthe"enabled"value
Enabled=dbg_Enabled
EndProperty
PublicPropertyLetShow(bNewValue)Setsthedebuggingpanel.Whereeachdigitinthestringrepresentsadebuginformationpaneinorder(11ofthem).1=open,0=closed
dbg_Show=bNewValue
EndProperty
PublicPropertyGetShowGetsthedebuggingpanel.
Show=dbg_Show
EndProperty
PublicPropertyLetAllVars(bNewValue)Setswheatherallvariableswillbedisplayedornot.true/false
dbg_AllVars=bNewValue
EndProperty
PublicPropertyGetAllVarsGetsifallvariableswillbedisplayed.
AllVars=dbg_AllVars
EndProperty
******************************************************************************************************************
@SDESCRIPTION:Addsavariabletothedebug-informations.
@PARAM:-label:Descriptionofthevariable
@PARAM:-output:Thevariableitself
******************************************************************************************************************
PublicSubPrint(label,output)
Ifdbg_EnabledThen
iferr.number>0then
calldbg_Data.Add(ValidLabel(label),"!!!Error:"&err.number&""&err.Description)
err.Clear
else
uniqueID=ValidLabel(label)
response.writeuniqueID
calldbg_Data.Add(uniqueID,output)
endif
EndIf
End</p>ASP由于使用了COM组件所以它会变的十分强大,但是这样的强大由于WindowsNT系统最初的设计问题而会引发大量的安全问题。只要在这样的组件或是操作中一不注意,哪么外部攻击就可以取得相当高的权限而导致网站瘫痪或者数据丢失; 尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。 它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。 如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。 学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点: ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。 我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。 不能只是将它停留在纸上谈兵的程度上。
页:
[1]