开发人员如何调试ASP页中的脚本对象 (3)

对象|脚本

跟踪事件
当一个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.

时间: 2024-08-04 01:22:23

开发人员如何调试ASP页中的脚本对象 (3)的相关文章

开发人员如何调试ASP页中的脚本对象 (2)

对象|脚本 调试和脚本库因为脚本对象本身是用脚本编写的,调试你编写的和脚本对象模型相互作用的脚本可能就很复杂,这有以下几个原因: 首先,当你利用调试器单步执行你自己的脚本时,你可能会进入不熟悉的并且非常复杂的脚本库代码中.其次,如果在脚本库内部发生了一个错误,单步执行它可能会是冗长乏味的,并且还不一定能帮你查明错误.最后,有时追随事件次序及脚本和脚本对象模型之间的控制流可能是很困难的. 现在,你可以利用下面这些脚本对象模型调试选项在这些环境下调试你的应用程序: 捕捉低层错误(Catch low-

开发人员如何调试ASP页中的脚本对象 (1)

对象|脚本 什么是脚本对象模型?Visual InterDev脚本对象模型定义了一套带有事件,属性和方法的对象,你可以在网络应用程序中使用这些对象的事件,属性和方法.大多数脚本对象代表用户界面,基本单元像按钮和文本框,及风格类似于Microsoft Visual Basic?中控件的函数. 不像Visual Basic控件,Visual InterDev中的脚本对象不需要一个专门的运行时间:它们是在脚本文件中定义的,当你使用这些对象时,要把这些文件包含在你的ASP页中.尽管这些文件只是脚本,但它

有懂网站开发的吗?ASP.NET中水印功能在本地可以显示。为什么上了服务器就显示不出来了呢。????

问题描述 有懂网站开发的吗?ASP.NET中水印功能在本地可以显示.为什么上了服务器就显示不出来了呢.???? 解决方案 解决方案二:看看保存的图片路径是否正确.估计你存的是绝对路径,所以上了服务器找不到了.解决方案三:问题太精简了吧.不太清楚状况

ASP.NET中Application全局对象用法实例浅析

 本文实例讲述了ASP.NET中Application全局对象用法.分享给大家供大家参考.具体如下: Application是应用全局对象,被全体共享.无论通过哪个页面操作Application,另一个页面都可以读取Application信息. 由于Application是共享的,操作之前先Lock,操作完成后UnLock. 在一个页面设置数据: 1 2 3 Application.Lock(); Application.Set("address", "上海");

ASP.NET中Application全局对象用法实例浅析_实用技巧

本文实例讲述了ASP.NET中Application全局对象用法.分享给大家供大家参考.具体如下: Application是应用全局对象,被全体共享.无论通过哪个页面操作Application,另一个页面都可以读取Application信息. 由于Application是共享的,操作之前先Lock,操作完成后UnLock. 在一个页面设置数据: Application.Lock(); Application.Set("address", "上海"); Applica

ASP.NET中的FILE对象总结

asp.net|对象 在ASP.NET中引入了名字空间,其中文件操作对应的名字空间是System.IO.名字空间和动态链接库有些类似,但是名字空间在整个.net系统中都可以应用.在ASP.NET的页面中可以使用<%@import namespace=...%>来引用名字空间.在vb6中采用fso对文件进行操作,在asp.net中的文件对象和fso很相似. 这里我介绍一下file对象:file对象的作用主要是创建文件流对象.通过file对象可以对系统文件进行全面的管理,可以创建.复制.删除.移动

ASP.NET中的Response对象的方法

Asp.Net中的Response对象的方法如下表所示,下面将向大家详细介绍它的重要方法. WriteFile将文件输出到客户端 Write将数据输出到客户端浏览器 Redirect将网页重新转到另一地址 Flush将缓冲区的数据输出到客户端浏览器 End停止并结束ASP网页的处理 Close关闭客户端的联机 ClearHeaders清除缓冲区中的页面标题 Clear清除缓冲区的数据 BinaryWrite将二进制字符或字符串输出到客户端浏览器 AppendToLog将自定义的数据加入到IIS日

ASP.NET中使用Application对象实现简单在线人数统计功能

  这篇文章主要介绍了ASP.NET中使用Application对象实现简单在线人数统计功能,本文给出实现步骤和相应代码实例,需要的朋友可以参考下 注:最近在复习ASP.NET,为了加深印象,会制作一些小的demo程序,分享给大家. 1 新建ASP.NET网站,编辑Global.asax文件,修改后的文件内容如下所示. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

调试ASP.NET中的com

问题描述 在一个解决方案中有两个项目,一个是ASP.NEt,一个是COM,其中ASP.NET中调用了该COM,有没有什么具体一点的方法或操作能在VS2003进入COM中调试,我把该COM附加到aspnet_wp.exe进程中也不行 解决方案 解决方案二:不知道.帮顶.解决方案三:这个不可以调试解决方案四:该回复于2009-05-14 16:13:15被版主删除