-1

从 C#/WPF 到 HTML5/JavaScript 的转变一直困扰着我。我认为具有挑战性的部分将是学习新语言、思考问题的新方法等。但那是容易的部分。真正的障碍是尝试使用称为 Firebug 的荒谬环境来调试任何合理大小的应用程序。我选择 Firebug 是因为 StackOverflow.com 上的大多数人似乎都在使用它。但是伙计..我真的不明白你们是如何使用这个东西的。它充满了令人眼花缭乱的错误。我之前在调试计时器回调时发布了关于 Firebug 的一个主要缺陷。但是今天的 Firebug 体验近乎疯狂。

简短的故事是,在某些未知条件下,如果遇到语法错误,Firebug 将不会报告错误,而是根本无法将整个脚本文件加载到内存中,并且不会显示任何错误信息。今天我处理了一个语法错误,由于逗号放错了。任何体面的调试器都会简单地突出问题并停止执行。不是萤火虫。它迫使您逐个文件调查,一次注释掉一个,因为您试图找出语法错误到底在哪里。这不仅仅是一些“边缘案例”。考虑一下这个故意坏的 JavaScript 片段:

var boo;
boo.SelectEntityPopupXXX=(function(){
    var hey={p: 1,z: 2,goob=this};
}());

有语法错误。'goob' 后面应该有一个冒号,而不是等号。如果你的应用有 50 个不同的 JavaScript 文件,而这个坏片段在其中一个文件中,Firebug 不会告诉你。它只是无法将整个脚本文件加载到内存中。由您来确定五十个文件中的哪个文件没有被加载。然后您必须随机注释/取消注释该文件的内容,直到您缩小该代码片段并意识到那里有一个错误的等号。那是绝对的疯狂!

对于大多数语法错误,Firebug 的行为符合预期。但它偶然发现了它们中的足够多的严重刺激性。这一点,再加上无数其他令人震惊的错误,使得 Firebug 环境对除了最微不足道的 Web 应用程序之外的所有应用程序完全无用。所以问题是:

[1] 是否有某种我缺少的语法错误标志或设置导致了这种疯狂的行为?如果有一个“随机忽略语法错误并混淆它们的位置”复选框,我想取消选中它。

[2] 一定有比 Firebug 更好的 [for Mac] 开发环境……或者至少,我无法想象更糟糕的开发环境。你有什么建议?

谢谢。

更新:

为了那些真正关心调试的人[而不是收集网站金块或这些赞成/反对票所代表的任何东西],想在这个线程被杀死之前尝试插入评论……我注意到调试环境Safari 和 Chrome 都更加可靠。我可以验证上面讨论的语法错误在 Safari 和 Chrome 中都被正确识别。我在另一篇文章中提到的主要计时器回调错误也是 Firebug 特有的。说够了。再见萤火虫。

4

1 回答 1

1

I prefer Chrome to develop any web sites/apps in. Chrome has a debugger line that sometimes works. The key to JS development is ALERTS. Just alert variable values and element values to you resolve your issue. And @Quentin is correct. Your syntax errors is due to the = operator. To set a value in JS objects you must use the : operator.

于 2012-04-30T22:35:45.463 回答