为了削减你可能必须忍受的工作量和压力,捕获JavaScript错误时,有许多强大的开发工具可供使用。每一种现代浏览器都有各自的(质量参差的)工具。使用它们会使得JavaScript开发呈现加一致的局面和更加远大的前景。
本章中我讨论用于调试JavaScript代码的不同的工具,然后建立可靠的、可重用的用以检验未来开发的测试套件。
调试
测试和调试是不可分离的两个环节。当你在为你的代码建立广泛的测试用例的时候,你肯定将会碰到一些奇怪的需要注意的错误。这正是调试环节发挥功用的地方。了解怎样使用可用的最好的工具来找到并修复你程序中的缺陷,可以使你的代码有保障且更快地运行。
错误控制台
大多数现代浏览器里都可用的最易使用的工具是某种形式的错误控制台。控制台的质量、界面的可访问性以及错误消息的质量,在不同的浏览器之间都有很大差异。最终,你可能会现最好使用某种单独的拥有最适合开发者的错误控制台(或其它用于调试的插件)的浏览器来开始你的调试过程。
Internet
Explorer
拥有最受欢迎的浏览器并不意味着就拥有了最好的调试工具。不幸的是,IE的错误控制台有着严重的不足。问题之一就是,控制台默认是关闭的,如果你不把IE用作缺省浏览器(十分怀疑任何有自尊心的JavaScript开发者会这么干),这一点会使得错误的搜寻变得更加令人困惑。
除了上面所提到的可用性,IE的错误控制台的最麻烦的问题是以下几点:
a.
每次只显示一个错误;你必须依赖菜单系统来找到其它错误。
b.
错误消息含义相当模糊,几乎没有逻辑意义。它们很少给出发生的问题的精确描述。
c.
报告的错误总是偏移一行,也就是说实际出错的行号总是比所报告的小一。这一点与含糊的错误结合起来,你可能会饱受bug之苦。
图4-1是发生错误时的IE错误控制台的例子。
图4-1.IE中的JavaScript错误控制台
正如我在本节开头所提到的,在另一个(非IE)浏览器中开始你的JavaScript调试过程或许是一个非常好的主意。一旦你在那种浏览器中彻底清除了所有bug,你应该可以更容易地定位出现在IE里的错综复杂的问题。
Firefox
过去的几年里Firefox浏览器在UI方面取得了极大的发展,极大地帮助着web开发者更加轻松地开发更好的网站。JavaScript错误控制台历经了多次更新,产生了一些很有用的东西。
a. 控制台允许你输入任意的JavaScript命令。这一点用于断定页面载入以后变量是什么值是极其有用的。
b. 控制台提供了依据其类型(如错误、警告或者消息)将消息分类的能力。
c. 最新版的控制台连同JavaScript错误一起提供了样式表警告。尽管在设计拙劣的网站上它可能会提供大量的不必要的错误消息,但是通常在找出你自己的布局缺陷时它还是很有帮助的。
d. 该错误控制台的一个缺点是它并不根据你正在浏览哪一个页面来过滤消息,这就是说你会得到不同页面的错误的混合。(下节我要讲到的Firebug插件,解决了这一问题。)
图4-2所示是Firefox错误控制台一个截屏。注意你可以使用不同的按钮在不同类型的错误消息之间切换。
2007-4-12 11:04