跟蹤事件 當(dāng)一個(gè)ASP頁(yè)使用腳本對(duì)象模型時(shí),單獨(dú)腳本對(duì)象觸發(fā)事件對(duì)狀態(tài)改變(如Recordset1_ondatasetcomplete)或用戶行為(如Button1_onclick)進(jìn)行反應(yīng)。通常,你需要知道你自己的腳本及由腳本對(duì)象模型觸發(fā)的事件在什么時(shí)候執(zhí)行。
為此,通過(guò)把@trace 或 @trace事件選項(xiàng)設(shè)置為true來(lái)打開(kāi)事件跟蹤。如果你使事件跟蹤有效,當(dāng)事件發(fā)生時(shí),事件信息就被寫到ASP頁(yè)中。例如,ASP頁(yè)的一部分可能像下面這個(gè)樣子:
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)
為了確定你的腳本什么時(shí)候執(zhí)行,在重要點(diǎn)包含Response.Write語(yǔ)句,如下面腳本所示。這個(gè)例子為一個(gè)recordset設(shè)置了一個(gè)參數(shù),這個(gè)recordset是建立在一個(gè)文本框中的信息的基礎(chǔ)之上的。每個(gè)步驟都通過(guò)在頁(yè)面上顯示來(lái)報(bào)告。
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
通過(guò)使用Jscript條件編譯命令,你可以指定Response.Write語(yǔ)句只有在你設(shè)置調(diào)試選項(xiàng)的情況下才出現(xiàn)在頁(yè)面中。例如,在下面的代碼塊中,Response.Write語(yǔ)句只有在@trace選項(xiàng)設(shè)置為true時(shí)才被執(zhí)行:
@if (@trace) Response.Write("Ready to set SQL statement parameters."); @end
你不一定只限于使用調(diào)試選項(xiàng)--你也可以創(chuàng)建你自己的條件標(biāo)記,如下面例子所示:
@set @trace_custom = true ' ... other script here @if (@trace_custom) Response.Write("Ready to set SQL statement parameters."); @end
注意 在把你的頁(yè)面變成產(chǎn)品之前,一定要把所有的調(diào)試條件設(shè)置為false。 有關(guān)條件編譯的更多信息,見(jiàn)微軟腳本網(wǎng)站語(yǔ)句部分的@if 和 @set命令。網(wǎng)站地址是 http://msdn.microsoft.com/scripting/default.htm? /scripting/JScript/doc/Jstoc.htm.
跟蹤警告 為了使腳本對(duì)象盡可能健壯,并且使顯示在ASP頁(yè)上的不必要信息最少,腳本對(duì)象通常不報(bào)告非致命錯(cuò)誤。例如,如果你向腳本對(duì)象方法傳遞了一個(gè)無(wú)效值,并且這個(gè)值并沒(méi)有使對(duì)象完全失敗,這個(gè)對(duì)象常常是繼續(xù)執(zhí)行而沒(méi)有錯(cuò)誤消息。但是,當(dāng)你開(kāi)發(fā)應(yīng)用程序時(shí),你一般會(huì)想知道腳本對(duì)象是否已經(jīng)發(fā)生了一個(gè)可能的錯(cuò)誤。有時(shí),不被報(bào)告的錯(cuò)誤以后在頁(yè)面執(zhí)行期間可能會(huì)產(chǎn)生不同的問(wèn)題,使調(diào)試頁(yè)面更加困難。
解決辦法是,通過(guò)將@trace 或 @trace警告選項(xiàng)設(shè)置為true來(lái)跟蹤警告。如果一個(gè)腳本對(duì)象遇到了一個(gè)可能的問(wèn)題,那么它將按如下的格式向頁(yè)面書寫信息:
WARNING TRACE:
FILE: recordset.asp FUNCTION: Recordset1.open() DESCRIPTION: Recordset is already open.
|
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!