Python语言技术文档

微信小程序技术文档

php语言技术文档

jsp语言技术文档

asp语言技术文档

C#/.NET语言技术文档

html5/css技术文档

javascript

点击排行

您现在的位置:首页 > 技术文档 > asp函数/类库

asp里面令人震撼地Debug类(VBScript)

来源:中文源码网    浏览:200 次    日期:2024-04-19 05:43:53
【下载文档:  asp里面令人震撼地Debug类(VBScript).txt 】


ASP里面令人震撼地Debug类(VBScript)
我想可能很多朋友都会用这样的方法“response.write ”,然后输出相关的语句来看看是否正确。前几天写了一个千行的页面,里面大概有七八个SUB/FUNCTION,调试的时候用了有三十几个response.write ,天,调试完后把这三十个一个个删除,累! 今天看到一个ASP中的Debug类(VBS),试用了一下,绝! 使用方法很简单: test.asp 复制代码 代码如下: <% output="XXXX" Set debugstr = New debuggingConsole debugstr.Enabled = true    debugstr.Print "参数output的值", output    '……    debugstr.draw Set debugstr = Nothing %> =================================================== debuggingConsole.asp 复制代码 代码如下: <% Class debuggingConsole    private dbg_Enabled    private dbg_Show    private dbg_RequestTime    private dbg_FinishTime    private dbg_Data    private dbg_DB_Data    private dbg_AllVars    private dbg_Show_default    private DivSets(2) 'Construktor => set the default values Private Sub Class_Initialize()    dbg_RequestTime = Now()    dbg_AllVars = false    Set dbg_Data = Server.CreateObject("Scripting.Dictionary") DivSets(0) = "
|#title#|
|#data#|
|
|"    DivSets(1) = "
|#title#|
|#data#|
|
|"    DivSets(2) = "
|#title#|
|#data#|
|
|"    dbg_Show_default = "0,0,0,0,0,0,0,0,0,0,0" End Sub Public Property Let Enabled(bNewValue) ''[bool] Sets "enabled" to true or false    dbg_Enabled = bNewValue End Property Public Property Get Enabled ''[bool] Gets the "enabled" value    Enabled = dbg_Enabled End Property Public Property Let Show(bNewValue) ''[string] Sets the debugging panel. Where each digit in the string represents a debug information pane in order (11 of them). 1=open, 0=closed    dbg_Show = bNewValue End Property Public Property Get Show ''[string] Gets the debugging panel.    Show = dbg_Show End Property Public Property Let AllVars(bNewValue) ''[bool] Sets wheather all variables will be displayed or not. true/false    dbg_AllVars = bNewValue End Property Public Property Get AllVars ''[bool] Gets if all variables will be displayed.    AllVars = dbg_AllVars End Property '*********************************************************** ''@SDESCRIPTION: Adds a variable to the debug-informations. ''@PARAM: - label [string]: Description of the variable ''@PARAM: - output [variable]: The variable itself '*********************************************************** Public Sub Print(label, output)    If dbg_Enabled Then      if err.number > 0 then        call dbg_Data.Add(ValidLabel(label), "!!! Error: " & err.number & " " & err.Description)        err.Clear      else        uniqueID = ValidLabel(label)        response.write uniqueID        call dbg_Data.Add(uniqueID, output)      end if    End If End Sub '*********************************************************** '* ValidLabel '*********************************************************** Private Function ValidLabel(byval label)    dim i, lbl    i = 0    lbl = label    do    if not dbg_Data.Exists(lbl) then exit do    i = i + 1    lbl = label & "(" & i & ")"    loop until i = i    ValidLabel = lbl End Function '*********************************************************** '* PrintCookiesInfo '*********************************************************** Private Sub PrintCookiesInfo(byval DivSetNo)    dim tbl, cookie, key, tmp    For Each cookie in Request.Cookies    If Not Request.Cookies(cookie).HasKeys Then      tbl = AddRow(tbl, cookie, Request.Cookies(cookie))    Else      For Each key in Request.Cookies(cookie)      tbl = AddRow(tbl, cookie & "(" & key & ")", Request.Cookies(cookie)(key)) Next    End If    Next    tbl = MakeTable(tbl)    if Request.Cookies.count <= 0 then DivSetNo = 2    tmp = replace(replace(replace(DivSets(DivSetNo),"#sectname#","COOKIES"),"#title#","COOKIES"),"#data#",tbl)    Response.Write replace(tmp,"|", vbcrlf) end sub '*********************************************************** '* PrintSummaryInfo '*********************************************************** Private Sub PrintSummaryInfo(byval DivSetNo)    dim tmp, tbl    tbl = AddRow(tbl, "Time of Request",dbg_RequestTime)    tbl = AddRow(tbl, "Elapsed Time",DateDiff("s", dbg_RequestTime, dbg_FinishTime) & " seconds")    tbl = AddRow(tbl, "Request Type",Request.ServerVariables("REQUEST_METHOD"))    tbl = AddRow(tbl, "Status Code",Response.Status)    tbl = AddRow(tbl, "Script Engine",ScriptEngine & " " & ScriptEngineMajorVersion & "." & ScriptEngineMinorVersion & "." & ScriptEngineBuildVersion)    tbl = MakeTable(tbl)    tmp = replace(replace(replace(DivSets(DivSetNo),"#sectname#","SUMMARY"),"#title#","SUMMARY INFO"),"#data#",tbl)    Response.Write replace(tmp,"|", vbcrlf) End Sub '*********************************************************** ''@SDESCRIPTION: Adds the Database-connection object to the debug-instance. To display Database-information ''@PARAM: - oSQLDB [object]: connection-object '*********************************************************** Public Sub GrabDatabaseInfo(byval oSQLDB)    dbg_DB_Data = AddRow(dbg_DB_Data, "ADO Ver",oSQLDB.Version)    dbg_DB_Data = AddRow(dbg_DB_Data, "OLEDB Ver",oSQLDB.Properties("OLE DB Version"))    dbg_DB_Data = AddRow(dbg_DB_Data, "DBMS",oSQLDB.Properties("DBMS Name") & " Ver: " & oSQLDB.Properties("DBMS Version"))    dbg_DB_Data = AddRow(dbg_DB_Data, "Provider",oSQLDB.Properties("Provider Name") & " Ver: " & oSQLDB.Properties("Provider Version")) End Sub '*********************************************************** '* PrintDatabaseInfo '*********************************************************** Private Sub PrintDatabaseInfo(byval DivSetNo)    dim tbl    tbl = MakeTable(dbg_DB_Data)    tbl = replace(replace(replace(DivSets(DivSetNo),"#sectname#","DATABASE"),"#title#","DATABASE INFO"),"#data#",tbl)    Response.Write replace(tbl,"|", vbcrlf) End Sub '*********************************************************** '* PrintCollection '*********************************************************** Private Sub PrintCollection(Byval Name, ByVal Collection, ByVal DivSetNo, ByVal ExtraInfo)    Dim vItem, tbl, Temp    For Each vItem In Collection      if isobject(Collection(vItem)) and Name <> "SERVER VARIABLES" and Name <> "QUERYSTRING" and Name <> "FORM" then        tbl = AddRow(tbl, vItem, "{object}")      elseif isnull(Collection(vItem)) then        tbl = AddRow(tbl, vItem, "{null}")      elseif isarray(Collection(vItem)) then        tbl = AddRow(tbl, vItem, "{array}")      else        if dbg_AllVars then        tbl = AddRow(tbl, "" & vItem & "", server.HTMLEncode(Collection(vItem)))      elseif (Name = "SERVER VARIABLES" and vItem <> "ALL_HTTP" and vItem <> "ALL_RAW") or Name <> "SERVER VARIABLES" then        if Collection(vItem) <> "" then        tbl = AddRow(tbl, vItem, server.HTMLEncode(Collection(vItem))) ' & " {" & TypeName(Collection(vItem)) & "}")        else        tbl = AddRow(tbl, vItem, "...")        end if      end if    end if    Next    if ExtraInfo <> "" then tbl = tbl & "
" & ExtraInfo    tbl = MakeTable(tbl)    if Collection.count <= 0 then DivSetNo =2      tbl = replace(replace(DivSets(DivSetNo),"#title#",Name),"#data#",tbl)      tbl = replace(tbl,"#sectname#",replace(Name," ",""))      Response.Write replace(tbl,"|", vbcrlf) End Sub '*********************************************************** '* AddRow '*********************************************************** Private Function AddRow(byval t, byval var, byval val)    t = t & "|||" & var & "|= " & val & "|"    AddRow = t End Function '*********************************************************** '* MakeTable '*********************************************************** Private Function MakeTable(byval tdata)    tdata = "|" + tdata + "
|"    MakeTable = tdata End Function '*********************************************************** ''@SDESCRIPTION: Draws the Debug-panel '*********************************************************** Public Sub draw()    If dbg_Enabled Then      dbg_FinishTime = Now()    Dim DivSet, x    DivSet = split(dbg_Show_default,",")    dbg_Show = split(dbg_Show,",")    For x = 0 to ubound(dbg_Show)      divSet(x) = dbg_Show(x)    Next    Response.Write "
Debugging-console:
"    Call PrintSummaryInfo(divSet(0))    Call PrintCollection("VARIABLES", dbg_Data,divSet(1),"")    Call PrintCollection("QUERYSTRING", Request.QueryString(), divSet(2),"")    Call PrintCollection("FORM", Request.Form(),divSet(3),"")    Call PrintCookiesInfo(divSet(4))    Call PrintCollection("SESSION", Session.Contents(),divSet(5),AddRow(AddRow(AddRow("","Locale ID",Session.LCID & " (&H" & Hex(Session.LCID) & ")"),"Code Page",Session.CodePage),"Session ID",Session.SessionID))    Call PrintCollection("APPLICATION", Application.Contents(),divSet(6),"")    Call PrintCollection("SERVER VARIABLES", Request.ServerVariables(),divSet(7),AddRow("","Timeout",Server.ScriptTimeout))    Call PrintDatabaseInfo(divSet(8))    Call PrintCollection("SESSION STATIC OBJECTS", Session.StaticObjects(),divSet(9),"")    Call PrintCollection("APPLICATION STATIC OBJECTS", Application.StaticObjects(),divSet(10),"")    Response.Write "
"    End If End Sub 'Destructor Private Sub Class_Terminate()    Set dbg_Data = Nothing End Sub End Class %> 类的说明: CLASS debuggingConsole Version: 1.2 -------------------------------------------------------------------------------- Public Properties Property Let Enabled(bNewValue)===[bool] Sets "enabled" to true or false Property Get Enabled===[bool] Gets the "enabled" value Property Let Show(bNewValue)===[string] Sets the debugging panel. Where each digit in the string represents a debug information pane in order (11 of them). 1=open, 0=closed Property Get Show===[string] Gets the debugging panel. Property Let AllVars(bNewValue)===[bool] Sets wheather all variables will be displayed or not. true/false Property Get AllVars===[bool] Gets if all variables will be displayed. -------------------------------------------------------------------------------- Public Methods public sub===Print (label, output)    Adds a variable to the debug-informations. public sub===GrabDatabaseInfo (byval oSQLDB)    Adds the Database-connection object to the debug-instance. To display Database-information public sub===draw ()    Draws the Debug-panel -------------------------------------------------------------------------------- Methods Detail public sub===Print (label, output) Parameters:    - label [string]: Description of the variable    - output [variable]: The variable itself public sub===GrabDatabaseInfo (byval oSQLDB) Parameters:    - oSQLDB [object]: connection-object

相关内容