如何在浏览器中调试Dojo?

时间:2013-09-30 09:46:42

标签: debugging dojo ibm-mobilefirst dojox.mobile

我目前(尝试)使用Worklight Studio 5.0.6和Dojo(Mobile)1.8.3开发应用程序。我很难找到适当的调试方法。等待5-10分钟在服务器上构建部署过程后,Chrome调试器中的错误通常如下所示:

enter image description here

我如何在MY源中追踪此错误?整个堆栈跟踪包含完全的Dojo代码,它在20个抽象层之后生成一个绝对无用的错误消息。

说真的,你们在现实生活中如何处理这个问题?您使用什么方法在浏览器中调试Dojo驱动的应用程序?

SPYRO

4 个答案:

答案 0 :(得分:2)

对于dojo.parse错误,我发现在所有例外情况下暂停Chrome调试器很有用(屏幕截图上的紫色图标应为蓝色)。您通常会在引发的第一个异常中获得有关错误原因,正在解析的DOM节点的名称等的更多详细信息。

雷米。

答案 1 :(得分:2)

调试基于dojo的应用程序应该与调试任何javascript应用程序相同。

通常我会按照以下步骤操作:

  1. 在代码中的某处添加console.log():这很快,大部分时间都足够了。

  2. 在调试器中设置断点:如果步骤1不够,您可以根据错误信息在错误行之前设置断点,然后进入或退出。

    < / LI>
  3. 注释掉最近的更改:对于一些很难找到错误行的错误,例如,在你的情况下解析错误,好方法是注释掉你最近的更改直到你上一个工作版本。或者,返回上一个工作版本,然后逐个添加代码。

  4. 创建一个简单的应用程序来重现错误:如果您的应用程序非常复杂并且您很难遵循上述方法,那么您可以尝试创建一个模仿您的应用程序的新应用程序当前的应用程序,但具有简单的逻辑,并尝试重现错误。

  5. 根据经验:在Chrome和firefox中运行的数组末尾的某些错误(例如额外的',')将在IE上报告无意义的错误信息。调试这类错误非常困难,您可以根据自己的经验或谷歌搜索。

答案 2 :(得分:2)

您是否在dojoConfig中提供了isDebug: true?另外,尝试查看其他浏览器是否也出现相同的情况。

更新:我最近发现Google Chrome和Dojo调试存在问题,我认为它与异步加载文件有关。正如您在@spyro提供的屏幕截图中看到的那样,ReferenceError对象是空白的(由于空括号{},您可以注意到这一点)。如果您想解决此问题,请重新打开Goog​​le Chrome控制台(例如,点击F12两次)。重新打开后,ReferenceError不再是空的,现在您可以使用它旁边的箭头展开该对象,并获得有关失败的更详细信息。

答案 3 :(得分:1)

通常我在这种情况下做的是在错误回调中放置一个断点(在你的情况下是3398行),然后查看错误变量(“e”)。

我不确定您对Web Inspector的熟悉程度,但是一旦您点击断点,请打开Web Inspector“控制台”并检查错误属性“e.message”和“e.stack”(只需键入控制台中的“e.message”。 此外,在开发过程中,最好避免使用Dojo优化/缩小,这会极大地提高您的调试能力。

底线是在抛出错误之前尝试放置断点。