【问题标题】:Debugging Techniques in JavaScript. Async CallbacksJavaScript 中的调试技术。异步回调
【发布时间】:2012-07-09 11:18:07
【问题描述】:

在我正在开发的现有 Backbone/jQuery/CoffeeScript 应用程序中,似乎有一个函数 (Backbone.Collection.fetch()) 被多次调用(有时数字可能会有所不同)。我认为这可能是一个时间问题,因为我正在做很多嵌套回调(如 AJAX 等)并且它变得难以调试。我可能应该尝试将代码转换为使用 jQuery deferred,但与此同时,我能做什么?

刚刚尝试在 Chrome 中浏览代码,但似乎代码在这里和那里跳跃,也许它同时处理不同的回调?

我在想也许我在每个函数 + 它的参数中添加一个 console.log,但一定有更好的方法吗?

【问题讨论】:

  • 您尝试过使用 Firefox 和 Firebug 吗?在某些方面,Firebug 优于 Chrome 提供的功能。

标签: javascript jquery debugging asynchronous coffeescript


【解决方案1】:

您可以将堆栈跟踪添加到该fetch() 函数,并查看从何处调用它。 JS 有许多不错的堆栈跟踪实现。我已经取得了很好的成功 Eric Wendelin's version,不过还有plenty of others

通过堆栈跟踪,您至少可以看到该函数的最常见路径,这可能有助于缩小搜索范围。它甚至可能会弄清楚潜在的罪魁祸首。

【讨论】:

  • 只需在函数代码中添加debugger;即可。这将导致检查员在该点暂停。
  • 听起来好像有太多调用来简单地调试。许多可以分析的堆栈可能会告诉调试器无法看到的东西。
猜你喜欢
  • 2011-11-16
  • 2014-08-11
  • 2011-09-02
  • 2016-09-02
  • 1970-01-01
  • 2012-01-02
  • 1970-01-01
  • 2010-10-14
  • 1970-01-01
相关资源
最近更新 更多