2011-02-07 102 views
15

是否有一个调试系统,可以让我在发生javascript函数调用时及其参数时进行记录?这将允许我在活动/客户端情况下跟踪和调试应用程序,而不会由于手动日志记录而导致性能下降。通过记录函数调用和参数实时调试javascript

编辑:我不是在谈论使用'console'窗口手动调用函数并查看结果,或手动将'trace'或'log'命令添加到我的javascript中。我需要它与任何运行的JavaScript一起工作。

回答

18

你可以重写Function.prototype.call并检索参数和arguments.callee?

这会产生报告所有功能的效果,因此超级冗长,但也许你想过滤。

然后你有你想要如何报告,也许如果(控制台)CONSOLE.LOG

+1

这是一个很棒的想法。 – mwilcox 2011-02-13 18:51:50

+0

梦幻般的想法,但没有提供GUI!如果我有一些确认dynatrace发现了函数调用,我会在那里授予赏金,但在那之前,你的想法是最好的。 – 2011-02-17 01:17:05

+0

有人可以提供一个这样的例子吗?如果你在IE或FF中查看这个(http://jsfiddle.net/b7Sny/)实现,当我预计会有两个警报时,只有一个警报。换句话说,如果我使用`myfunction.call()`,那么这个答案似乎可行,但如果我执行`myfunction()`则不会。 – user979672 2012-01-27 02:33:56

0

是。所有主流浏览器都内置了调试器(IE,Chrome,Safari),或者作为附件(Firebug for Firefox)提供。

0

Firebug对此很有帮助。或者您也可以使用Google Chrome的内置调试器。

2

@Jenko如果你正在寻找类似于IDE调试器的东西,在这种情况下,Internet Explorer 8和9有一个内置的开发工具(按F12),Chrome也有开发工具。 IE和Chrome都允许您在代码中设置断点并在运行时逐步完成。 Firefox有其他人提到的Firebug,它也允许设置断点并检查代码的执行情况。歌剧有蜻蜓(内置),并具有与其他浏览器相同的功能。

0

针对Firefox的Firebug 为IE deeloper铬工具 内置的调试器是很好用

2

当我读答案,并在重复笑着回答:“你可以使用Firebug!”我意识到....你可以使用Firebug。

说真的,它有一个“配置文件”命令,完全符合你的要求。 Safari和Chrome有这个功能,所以你可以在那里检查。 IE8/9有一个类似于“profiler”的工具(但我不知道它是否可以通过console.profile()从JavaScript调用)

这会给你准确的时间,因为你添加的任何代码和日志也会影响实际的表现。由于此功能位于顶级浏览器中,因此您可以获得合理数量的数据。

enter image description here

0

可以说是最好的在线JavaScript代码质量控制研究是JSLint的。它不仅检查代码中的错误,而且完全改进了程序的编码风格。这是作者首先将其作为原因的原因。我的0.02 $

http://www.jslint.com/