脚本调试的限制
更新:2007 年 11 月
本主题适用于:
版本 |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
速成版 |
![]() |
![]() |
![]() |
![]() |
标准版 |
![]() |
![]() |
![]() |
![]() |
专业团队版 |
![]() |
![]() |
![]() |
![]() |
表格图例:
![]() |
适用 |
![]() |
不适用 |
![]() |
默认情况下隐藏的一条或多条命令。 |
Visual Studio 支持对客户端脚本进行调试,但受约于本主题中介绍的限制。
客户端脚本断点映射的限制
利用 Visual Studio,您可以在运行时转换为客户端文件的服务器端 ASPX 或 HTML 文件中设置断点。Visual Studio 会将服务器端文件中的断点映射到客户端文件中的相应断点,但存在下列限制:
断点必须设置在 <script> 块内部。如果断点位于内联脚本或 <% %> 块中,则无法进行映射。
页的浏览器 URL 必须包含页名称。例如 https://microsoft.com/default.apsx。断点映射无法识别从类似 https://microsoft.com 的地址到默认页的重定向。
断点必须设置在由浏览器 URL 指定的页内,而不能设置在该页包括的 ASPX 控件 (ascx) 文件、母版页或其他文件中。如果将断点设置在包括的页中,将无法进行映射。
如果将断点设置在 <script defer=true> 块中,将无法进行映射。
对于设置在 <script id=""> 块中的断点,断点映射将忽略 <script id=""> 属性。
断点映射和重复行
为了查找服务器端脚本和客户端脚本中的对应位置,断点映射算法将逐行检查代码。该算法假定每一行都是唯一的。如果有两行或更多行包含相同的代码,而断点设置在其中一个重复行上,则断点映射算法可能会在客户端文件中选择错误的重复行。若要避免这种情况,请向设置了断点的行中添加一条注释。例如:
i++ ;
i ++; // I added a comment, so this line is now unique
i ++;