代码之家  ›  专栏  ›  技术社区  ›  Chau

外部javascript框架调试策略

  •  1
  • Chau  · 技术社区  · 15 年前

    使用extjs、geoext和openlayers,我越来越倾向于遇到不会导致直接javascript错误的问题(在ie、ff或类似情况下)。可能是功能不工作、意外行为等。

    我通常的策略是将代码剥离到最低限度,以期发现问题所在——Firebug和IE调试工具通常是很好的伙伴。如果一个相似的问题已经被另一个用户记录下来,并且这个问题是以某种方式制定出来的,那么谷歌和各种论坛总是一个很大的帮助。

    但是当涉及到使用更大的框架,如extjs和openlayers时,我发现当我的调试引导我进入神秘方法的框架世界时非常困难。

    在这里和其他论坛中提问可以产生非常好的结果,但有时我不能指出问题实际上是什么,只有我在屏幕上看到的结果。使用多个框架可能会造成它们之间的干扰,使用这些框架时的意外行为,通常会使调试复杂化。

    你建议我在这种情况下做什么?你通常做什么?我很想学一两个技巧。

    1 回复  |  直到 12 年前
        1
  •  1
  •   slebetman    15 年前

    我感觉到你的痛苦。我经常使用yui,有时错误会被吸进yui代码的无底坑中,这些代码本身不会生成错误,但也不会按我认为的方式执行。

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

    在无底坑吞咽错误的情况下,我会在代码中的可疑位置设置断点,并单步执行。

    Firebug在这里非常非常有用,因为它允许您动态设置断点和条件断点。在上面的两种情况下,我从不把我的问题降到最低,因为这个bug可能是由于复杂性造成的。此外,设置断点更容易。

    只有当我需要在这里或comp.lang.javascript上发布问题时,我才会将问题降到最低。

    现在,如果虫子只出现在我通常放弃一天,那就回家明天再来。这是一个非常有效的策略,直到我的老板决定我们需要推动代码活在今晚(在这种情况下,我只是在里面哭)。