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

对象|脚本

调试和脚本库
因为脚本对象本身是用脚本编写的,调试你编写的和脚本对象模型相互作用的脚本可能就很复杂,这有以下几个原因:

首先,当你利用调试器单步执行你自己的脚本时,你可能会进入不熟悉的并且非常复杂的脚本库代码中。其次,如果在脚本库内部发生了一个错误,单步执行它可能会是冗长乏味的,并且还不一定能帮你查明错误。最后,有时追随事件次序及脚本和脚本对象模型之间的控制流可能是很困难的。

现在,你可以利用下面这些脚本对象模型调试选项在这些环境下调试你的应用程序:

捕捉低层错误(Catch low-level errors)--如果一个脚本对象如Recordset,遇到一个错误,它可能会利用详细的错误消息来警告你。这个选项帮你利用可能会由于外部原因而失败的组件来找到错误。
跟踪事件(Trace events)--你可能会让页面显示一个当它们发生时触发的事件列表。这个选项帮助你查看和脚本对象模型事件相关的脚本将在什么时候执行。
跟踪警告(Trace warnings)--你可能会看到描述可能发生的错误的警告消息,但有些错误是没有警告消息,它们通常是悄悄地发生。这个选项帮你发现像那些由于向方法传递无效参数而产生的错误。
使脚本对象能够进行调试
当你利用Visual Studio 6.0, Service Pack 3及更高版本创建一个新的ASP页时,ASP页在顶部包含一个脚本块,在这个脚本块中有调试选项。

注意 对于那些在安装Service Pack 3及更高版本之前创建的项目,你必须把新的脚本库文件拷贝到你的项目中。

缺省情况下,选项是关闭的。脚本块一般如下:

<SCRIPT id=DebugDirectives runat=server language=javascript>
// Set these to true to enable debugging or tracing
@set @debug=false
@set @trace=false
</SCRIPT>

注意:脚本对象调试要求服务器上正在运行Microsoft JScript 5.0或更高版本。你可以从Microsoft Visual InterDev 6.0 CD将JScript 5.0安装到服务器上,也可以从微软脚本网站上得到,站点位于http://msdn.microsoft.com/scripting/default.htm。

为了能够进行调试,就要对你想要变成true的选项进行设置。例如,要捕捉低层错误,脚本块更改如下:

<SCRIPT id=DebugDirectives runat=server language=javascript>
// Set these to true to enable debugging or tracing
@set @debug = true
@set @trace = false
</SCRIPT>

注意:调试选项块必须在ASP页的顶部紧接着@language指令出现。

你一共可以设置四个选项,如下表所示。有关单独(individual)设置的详细资料在这个主题的后面部分介绍。

选项 说明
@debug 在特定的脚本对象中报告选定的错误。
@trace 打开下面两个跟踪选项。
@trace_events 打开事件跟踪。
@trace_warnings 打开通常悄悄发生的可能错误的警告信息。

注意:如果你将@trace设置为true,它将覆盖@trace_events 和 @trace_warnings的设置。但是,如果@trace是false,你可以单独开关每个跟踪选项。 单独跟踪选项不是ASP页中缺省脚本块的一部分,因此如果你想单独设置必须另外加入它们。例如,如下代码只使事件跟踪有效而关闭警告:

<SCRIPT id=DebugDirectives runat=server language=javascript>
@set @debug = false
@set @trace = false
@set @trace_events = true
</SCRIPT>

如果你使用的是Microsoft Internet Explorer 4.x,设置任何@trace选项都将会覆盖BODY标记,这会使BODY标记中的事件绑定(binding)无效,属性被忽略。如果你用的是Internet Explorer 5.0就不会发生这个问题。

如下类型的事件联结在Internet Explorer 4.0中不会工作:

<BODY onload="initialize()">
为了解决这个局限,就要采用一个不同的绑定机制。如果你用的是Visual Basic, Scripting Edition (VBScript),你可以使用隐式(implicit)绑定

<SCRIPT LANGUAGE="VBScript">
Function window_onload()
   initialize()
End Function
</SCRIPT>

如果你用的是JavaScript,你可以调用一个全局脚本,这个脚本将一个函数指针分配给一个窗口对象事件,代码如下:

<SCRIPT LANGUAGE="JavaScript">
   window.onload = initialize
</SCRIPT>

如果当前的BODY标记包含属性,你应该在脚本中通过设置文档对象的属性来代替。例如,如果BODY标记目前包含属性BGCOLOR="#FFFF00",你可以利用如下的脚本来设置它。当文档首次装载时利用上面列出的技术去调用这个脚本。

<SCRIPT LANGUAGE="JavaScript">
function initialize(){
   document.bgColor = "#FFFF00";
}
</SCRIPT>

时间: 2024-12-29 09:19:06

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

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

对象|脚本 跟踪事件当一个ASP页使用脚本对象模型时,单独脚本对象触发事件对状态改变(如Recordset1_ondatasetcomplete)或用户行为(如Button1_onclick)进行反应.通常,你需要知道你自己的脚本及由脚本对象模型触发的事件在什么时候执行. 为此,通过把@trace 或 @trace事件选项设置为true来打开事件跟踪.如果你使事件跟踪有效,当事件发生时,事件信息就被写到ASP页中.例如,ASP页的一部分可能像下面这个样子: EVENT TRACE: thisPa

开发人员如何调试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被版主删除