外部javascript框架调试策略

时间:2010-01-04 08:30:22

标签: javascript debugging

使用Extjs,GeoExt和OpenLayers,我越来越倾向于遇到不会导致直接javascript错误的问题(无论是IE,FF还是类似)。它可能是功能不起作用,意外行为等。

我通常的策略是将代码删除到最低限度,希望能够发现问题出现的地方 - Firebug和IE调试工具通常是很好的伙伴。谷歌和各种论坛总是一个很大的帮助 - 如果另一个用户已经记录了类似的问题,并且问题已经以某种方式制定,以便我找到它。

但是当谈到使用Extjs和OpenLayers等更大的框架时,我发现当我的调试引导我进入神秘方法的框架世界时,我会非常困难。

在这里和其他论坛提出问题可以给出很棒的结果,但有时我无法指出问题究竟是什么 - 只有我在屏幕上看到的结果。使用多个框架可能是它们之间的干扰,当使用这些框架时出现意外行为,并且通常只会使调试复杂化。

在这些情况下,您建议我做什么?你通常做什么 - 我很乐意接受一两招:)

1 个答案:

答案 0 :(得分:1)

我感觉到你的痛苦。我经常使用YUI,有时候错误会被吸入YUI代码的无底洞中,这些代码本身不会产生错误,但也没有按照我认为的那样做。

如果我很幸运,在外国代码中抛出错误,我会看看Firebug的调用堆栈,并在我找到自己代码的链的第一个位置开始调试。

在无底洞吞咽错误的情况下,我采取在我的代码中设置断点在可疑的地方并且单步执行。

Firebug在这里非常非常有用,因为它允许您动态设置断点和条件断点。在上述两种情况下,我都不会将问题减少到最小,因为错误可能是由于复杂性造成的。此外,设置断点更容易。

关于我将问题减少到最低限度的唯一时间是我需要在此处或在comp.lang.javascript上发布。

现在,如果这个bug只出现在IE中,我通常会放弃一天,回家后明天回来。这是一个令人惊讶的有效策略,直到我的老板决定我们需要将代码推送到TONIGHT(在这种情况下我只是在里面哭)。