跟蹤事件 當一個ASP頁使用腳本對象模型時,單獨腳本對象觸發事件對狀態改變(如Recordset1_ondatasetcomplete)或用戶行為(如Button1_onclick)進行反應。通常,你需要知道你自己的腳本及由腳本對象模型觸發的事件在什么時候執行。
為此,通過把@trace 或 @trace事件選項設置為true來打開事件跟蹤。如果你使事件跟蹤有效,當事件發生時,事件信息就被寫到ASP頁中。例如,ASP頁的一部分可能像下面這個樣子:
EVENT TRACE: thisPage fired oninit event. EVENT TRACE: Recordset1 fired ombeforeopen event. EVENT TRACE: Recordset1 fired onrowenter event. EVENT TRACE: Recordset1 fired ondatasetchanged event. EVENT TRACE: Recordset1 fired ondatasetcomplete event. (etc)
為了確定你的腳本什么時候執行,在重要點包含Response.Write語句,如下面腳本所示。這個例子為一個recordset設置了一個參數,這個recordset是建立在一個文本框中的信息的基礎之上的。每個步驟都通過在頁面上顯示來報告。
Sub btnQuery_onclick() Recordset1.close() Response.Write("Finished closing recordset.") Recordset1.setParameter 1, txtLastName.value Response.Write("Finished resetting query parameter.") Recordset1.open() Response.Write("Finished reopening recordset.") End Sub
通過使用Jscript條件編譯命令,你可以指定Response.Write語句只有在你設置調試選項的情況下才出現在頁面中。例如,在下面的代碼塊中,Response.Write語句只有在@trace選項設置為true時才被執行:
@if (@trace) Response.Write("Ready to set SQL statement parameters."); @end
你不一定只限于使用調試選項--你也可以創建你自己的條件標記,如下面例子所示:
@set @trace_custom = true ' ... other script here @if (@trace_custom) Response.Write("Ready to set SQL statement parameters."); @end
注意 在把你的頁面變成產品之前,一定要把所有的調試條件設置為false。 有關條件編譯的更多信息,見微軟腳本網站語句部分的@if 和 @set命令。網站地址是 http://msdn.microsoft.com/scripting/default.htm? /scripting/JScript/doc/Jstoc.htm.
跟蹤警告 為了使腳本對象盡可能健壯,并且使顯示在ASP頁上的不必要信息最少,腳本對象通常不報告非致命錯誤。例如,如果你向腳本對象方法傳遞了一個無效值,并且這個值并沒有使對象完全失敗,這個對象常常是繼續執行而沒有錯誤消息。但是,當你開發應用程序時,你一般會想知道腳本對象是否已經發生了一個可能的錯誤。有時,不被報告的錯誤以后在頁面執行期間可能會產生不同的問題,使調試頁面更加困難。
解決辦法是,通過將@trace 或 @trace警告選項設置為true來跟蹤警告。如果一個腳本對象遇到了一個可能的問題,那么它將按如下的格式向頁面書寫信息:
WARNING TRACE:
FILE: recordset.asp FUNCTION: Recordset1.open() DESCRIPTION: Recordset is already open.
|