Debugging 如何在浏览器中调试Dojo?
我目前正在(尝试)使用Worklight Studio 5.0.6和Dojo(Mobile)1.8.3开发一个应用程序。我很难找到合适的调试方法。在服务器上等待构建部署过程5-10分钟后,Chrome调试器中的错误通常如下所示: 我应该如何在我的源代码中找到这个错误?整个堆栈跟踪完全由Dojo代码组成,它在20个抽象层之后生成了一条毫无用处的错误消息 说真的,你们在现实生活中是怎么处理的?您使用什么方法在浏览器中调试Dojo驱动的应用程序Debugging 如何在浏览器中调试Dojo?,debugging,dojo,ibm-mobilefirst,dojox.mobile,Debugging,Dojo,Ibm Mobilefirst,Dojox.mobile,我目前正在(尝试)使用Worklight Studio 5.0.6和Dojo(Mobile)1.8.3开发一个应用程序。我很难找到合适的调试方法。在服务器上等待构建部署过程5-10分钟后,Chrome调试器中的错误通常如下所示: 我应该如何在我的源代码中找到这个错误?整个堆栈跟踪完全由Dojo代码组成,它在20个抽象层之后生成了一条毫无用处的错误消息 说真的,你们在现实生活中是怎么处理的?您使用什么方法在浏览器中调试Dojo驱动的应用程序 spyro对于dojo.parse错误,我发现在所有异
spyro对于dojo.parse错误,我发现在所有异常(屏幕截图上的紫色图标应为蓝色)上暂停Chrome调试器非常有用。在引发的第一个异常中,通常会获得有关错误原因、正在解析的DOM节点的名称等的更多详细信息
Rémi.调试基于dojo的应用程序应该与调试任何javascript应用程序相同 通常我会遵循以下步骤:
在这种情况下,我通常会在错误回调中放置一个断点(在本例中是第3398行),然后查看错误变量(“e”) 我不确定您对Web检查器有多熟悉,但一旦您点击断点,打开Web检查器的“控制台”,检查错误属性“e.message”和“e.stack”(只需在控制台中键入“e.message”)。 此外,在开发过程中,最好避免Dojo优化/缩小,这将大大提高您的调试能力
底线是在抛出错误之前尝试放置断点。您是否在dojoConfig中提供了
isDebug:true
?另外,试着看看在其他浏览器中是否也会发生同样的情况
更新:我最近发现Google Chrome和Dojo调试存在问题,我认为这与文件的异步加载有关。正如您在所提供的@spyro屏幕截图中所看到的,
ReferenceError
对象为空(您可以注意到,因为括号是空的{}
)。如果你想解决这个问题,可以重新打开谷歌Chrome的控制台(例如点击两次F12
)。重新打开ReferenceError
后,该对象不应再为空,现在您可以使用该对象旁边的箭头展开该对象,并获得有关失败原因的更详细信息。谢谢您的回答,但所有这些对于Dojo来说都不是特别的,因为它广泛使用回调和异步AMD代码,您根本不知道是什么导致了错误(因为您的“类”不是堆栈跟踪的一部分)。由于缺少所有要求,甚至无法从javascript控制台操纵页面。您是否在dojoConfig
中提供了isDebug:true
?另外,试着看看在其他浏览器中是否也会发生同样的情况。我不知道为什么,但有时其他浏览器会向我提供更多信息。