站长技术网

首页 > 网站基础 > Javascript/Ajax >

用Mozilla免费调试器调试JavaScript

编程错误是生活中的严酷事实,但你不应在追踪这些错误的同时捶胸顿足。更加稳定的语言,如Java和.NET系统语言提供简化问题追踪过程的开发环境。

JavaScript开发者拥有较少的选项,但提供你所需的一切功能。(Venkman是这个调试器的代号。)

Venkman JavaScript调试器

这个调试器的前身为Netscape的JavaScript调试器,它是Mozilla的一个附加产品。Venkman JavaScript调试器既是一个图形,也是一个控制台调试器。

下载并安装Venkman JavaScript调试器后,就可以通过“工具|Web开发|JavaScript调试器”菜单启动它。这个附加产品允许你查看和调试位于源文件或网页中的JavaScript。它提供以下特性:

  • 断点管理:断点允许你在源代码的特定位置终止代码执行。你可以在这个工具内设置和清除断点,这允许你在调试时轻松控制程序流程。双击断点打开与之对应的文件,断点行也会高亮显示。
  • 调用堆栈检查:通过这个特性可粗略了解脚本运行时调用了哪些内容。双击调用堆栈中的一个项目,打开它包含的文件,突出显示与调用堆栈中项目对应的行。
  • 变量/对象检查:这个特性允许你在执行脚本时查看变量和对象的值。
  • 查看源代码:调试器界面的脚本视图允许你查看被调试的JavaScript代码。
  • 执行JavaScript代码:你可以在调试器中输入并运行自己的JavaScript代码。

调用堆栈、打开文件和变量/对象视图以树状显示。任何旁边有扭曲图标的项目都包含子对象,可以打开扭曲图标查看这些子对象。工具栏内包含表示基本调试特性的按钮,包括:

  • 终止:停止执行当前脚本,只有在脚本运行时有效。
  • 继续:允许你在用断点终止脚本执行后恢复脚本运行。
  • 跳过:允许你跳过一个函数调用。只有在逐行遍历一段代码时它才有用;调用时它允许你跳过一个函数的代码。函数调用继续,你接着运行被调用函数之后的代码。
  • 跳进:一次运行一个语句。遍历一个语句后,你可以在其它调试窗口中看到它的效果。而且,当你调用函数时,它允许你进入这个函数内。
  • 跳出:执行当前函数的剩余部分,执行在调用它的那一行终止。(只有使用Step Into,转入被调用的函数执行时它才有效。)
  • 剖析:激活或禁用当前运行脚本的代码剖析。

用Venkman JavaScript调试器调试一个文件

用Firefox和Venkman JavaScript调试器调试JavaScript代码相当简单。首先,你将要调试的页面加载到Firefox中。之后,通过工具菜单启动调试器,打开调试器后,当前页面即位于文件列表中。

你可以在文件列表中导航页面,双击打开和查看它包含的文件,其中包括加载到页面中的JavaSrcipt文件。你可以双击JavaSrcipt文件查看它的源代码,并对其使用调试器特性。

例如,你可以设置断点,返回浏览器窗口并与页面交互,触发JavaSrcipt执行,并在遇到断点时停止执行。这时,你可以通过调试器选项(跳进、跳过等)继续执行代码,同时监控变量和对象。调试器的另一个显著特点是你可以对代码进行剖析,找出低效的代码。

用Venkman JavaScript调试器剖析代码

Venkman JavaScript调试器的剖析特性允许你监控代码执行,追踪存在低效代码的瓶颈。剖析下拉菜单允许你打开收集、清除剖析数据和保存剖析数据。剖析文件可以保存为HTML、XML、文本或逗号分隔的文件。

下面的代码中包含一部分通过剖析特性收集到的样本数据。它包括源文件名和执行时间窗口、所使用函数的名称(包括源代码行号)、运行时调用函数的总次数、以及执行总时间。

prototype.js: 750 - 2500 milliseconds

Function Name: [from] (Lines 489 - 498)

Total Calls: 2 (max recurse 0)

Total Time: 2359.38 (min/max/avg 0/2359.38/1179.69)

Time (ex. calls): 2359.38 (min/max/avg 0/2359.38/1179.69)

剖析数据允许你查出可能对代码的性能造成负面影响的代码和函数。

用Venkman JavaScript调试器追踪问题

JavaScript开发者需要Mozilla Venkman JavaScript调试器。该插件允许你轻松地遍历代码执行、监控变量和对象、并定位任何可能给性能造成负面影响的代码。

价格标签是Venkman JavaScript调试器的最佳特性——你可以在各种版本的基于Mozilla的浏览器(如Firefox)中免费使用这一特性。

作为一名资深开发者,我喜爱这个调试器,因为它显著简化了JavaScript代码调试工作。

Tony Patton拥有丰富的Java、VB、Lotus及XML认证方面的知识,是一个专业的应用程序开发人员。