调试
处理AJAX应用的怪异行为一直以来都是Web开发者最头疼的问题,因为直到目前为止,几乎没有什么已经存在的工具可以帮助处理这些问题。与其他语言不同,其他语言可以采用IDE负责调试任务,例如栈跟踪和逐句通过(stepping through)代码,JavaScript盲目的执行在Web浏览器中,当程序出错时,没有任何有用的反馈。当经常看到众所周知的“null is null or not an object”错误消息时,你就明白我们在讨论什么内容了。另外一个问题是当XHR请求发生错误时,应该如何排查并且修正这些错误?对于这些问题,有许多优秀的工具可用来简化开发。
1.Venkman
对于JavaScript调试,其中一种最为强大的工具是Mozilla的JavaScript调试器,也称为Venkman ,这个工具不仅能够帮助处理基本语法检查,而且还能够设置断点、检查变量的上下文(有没有曾经想知道在任意时刻的this的引用指的是什么?),逐句通过(stepping through)代码和执行调用栈导航。这个工具仅仅用于Mozilla产品(包括Firefox),但也意味着可以工作在MacOS、Linux和Windows操作系统之上。对于调试IE产生的问题通常也能够起到帮助作用,因为JavaScript中的大部分内容在不同的浏览器中是相同的。
Venkman调试器包括6个常见区域。已加载的脚本面板(Loaded Scripts panel)显示了当前页面中包含的脚本文件。通过单击面板中JavaScript文件旁边的展开/关闭(expand/collapse)三角形,我们可以浏览文件中的不同函数。
局部变量面板(Local Variables panel)支持在代码执行时跟踪变量的值。
断点面板(Venkman调试器)的监视(Breakpoints panel Watch)和断点面板允许你指定何时开始调试、何时停止执行等操作。
调用栈面板(Call Stack panel)显示了当前位于代码的哪个位置。通过这个窗口,我们常常可以判断出正在执行哪些函数以及哪个函数调用了这个函数。
源代码视图(Source Code view)显示了正在调试的实际的JavaScript代码。
交互会话面板(Interactive Session panel)提供了可以交互工作的命令行。输入/help可以获得命令帮助。
图5-13 Mozila的Venkman JavaScript 调试器
2.MS脚本调试器
微软公司和Venkman相同的产品是MS脚本调试器 (参见图5-14),而且也是免费的。我们可以基于Script Debugger使用交互控制台并且查看栈跟踪信息,如图5-14所示。如果你需要一些工具调试IE,这个工具确实很有用。我们在Visual Studio中可以找到更出色的解决方案。基于Visual Studio,我们能够对变量设置监视,创建断点,并且逐句通过代码,这些都是快速高效地进行调试所需的功能。使用哪种工具和个人偏好有关,我们可能不需要同时使用两种工具。这两种工具都只在Windows中的IE上工作,不过,如果编写跨平台支持的程序,我们可能想要从Venkman着手开始使用。如果你确实需要在IE中使用调试功能,首先,你同样首先需要确信在IE高级设置中取消对禁用脚本调试选项的选择(工具→Internet选项→高级),从而在浏览器中支持调试。
图5-14 MS脚本调试器
这里要指出的另一个要点是debugger关键字的使用。这个关键字可能是所有JavaScript中最为有用的功能之一。其本质是如何能在代码中设置断点,并且不仅仅能运行在IE中,同样还能运行在Firefox的Firebug操作中。
3.Firebug
目前用于JavaScript调试、DOM查看(DOM inspection)、网络状况监视(network sniffing)及其相互协作的最优秀的解决方案是Firefox的Firebug工具 。这个工具的调试能力正如你所预期的,使用debugger语句来设置断点,单步执行(stepping into)、逐过程(stepping over)和跳出(stepping out)函数调用,并在浏览器中查看代码。Firebug支持点击式(point-and-click)DOM查看和简单实时编辑DOM结构和CSS属性。Firebug最为有用和与众不同的部分是Console功能,这个功能允许开发者在当前页面的上下文中输入并执行任意的JavaScript。Console同时还能够用于显示来自JavaScript代码中的日志或者调试信息。我们不用alert()来进行快速而随意的调试,只使用Firebug的console.log("Welcome %s",username)方法支持printf功能,例如用于替代字符串的%s、用于替代数值的%d、%i、%f和用于替代对象的%o。console.log()方法使用很方便,因为这个方法以一种可读性很好的方式输出诸如数组或者HTML元素的复杂对象。console. trace()能够用于输出栈跟踪,console.time("name")和console.timeEnd("name")能够特定用于内联的特定计时信息。
在最新的Firebug版本1.0中提供了对所有的XHR请求和诸如图片和CSS等下载资源的网络状态监视和报告的功能。这个功能能够让开发者敏锐地觉察到网络架构的瓶颈在哪里。最新版本Firebug的另一个新功能是Web页面的性能分析。当登录GMail时,单击性能分析(Profile)按钮将触发Firebug跟踪所有的JavaScript代码的执行情况并以一种容易阅读的格式输出结果,如图5-15所示。
(点击查看大图)图5-15 Firebug JavaScript性能分析报告
4.Microsoft Developer Toolbar
DOM调试器服务的目标与脚本调试器略为不同。MS Developer Toolbar就是其中的一种DOM调试器 。这个工具不是让你调试JavaScript,而是支持通过点击页面上的对象进行查看,以树形视图查看DOM结构,并查看和设置DOM结点上的CSS属性,如图5-16所示。该工具安装在浏览器内部,是浏览器的一个辅助插件,在需要使用这个工具时,这种方式能够极其方便快速地执行加载。
(点击查看大图)图5-16 Microsoft Developer Toolbar
5.Fiddler
为了解决HTTP请求的调试,可以在Windows上使用的是Fiddler 软件,这个软件允许开发者查看发送到服务器的HTTP请求的所有细节,执行性能分析(性能分析能够回答这样的问题:“为什么我的应用下载耗费这么长的时间?”),查看哪些信息缓存了,哪些信息没有缓存,甚至是执行自动测试,如图5-17所示。Fiddler包括一个在IE中使用的内置的浏览器辅助对象,但是也可以通过设置代理在Firefox中使用。
图5-17 Microsoft Fiddler
6.Safari
虽然Safari已经改进了错误日志记录功能,但是调试AJAX应用仍然比较困难。Safari支持一个调试窗口,可以通过控制台开启激活。具体激活操作可以在终端窗口(应用→终端辅助工具)输入以下命令:
defaults write com.apple.safari IncludeDebugMenu 1
接着启动Safari并且在调试(Debug)菜单中选择记录JavaScript异常(Log JavaScript Exceptions)选项。在Safari1.3或者以上版本中,选择显示JavaScript控制台(Show JavaScript Console)菜单选项。对于更早的版本,JavaScript异常出现在控制台应用(应用→辅助工具→控制台)中。
幸好,Safari1.3和更高的版本支持通过window.console.log()明确地记录来自JavaScript的任意信息,类似Firebug中的console.log()。所有的信息都发送到JavaScript控制台窗口并显示成暗绿色。
Safari中来自WebKit的Web Inspector工具 可以用于支持DOM查看。Web Inspector提供的特性类似于Web Developer Toolbar和Firebug,并且支持点击式DOM查看。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yezi77321660/archive/2009/05/12/4170414.aspx
分享到:
相关推荐
- **Firebug/Venkman/Aptana Debugger Service**:用于调试JavaScript代码,帮助开发者找出问题所在。 **4.4 测试工具** - **JsUnit**:单元测试框架,可以帮助开发者确保代码的质量。 #### 五、JavaScript库 **...
内容概要:本文深入剖析了安川MP7系列工业控制系统的关键源码,重点介绍了运动轨迹规划、通信协议处理以及故障处理机制等方面的技术细节。通过对实际代码片段的解读,揭示了该系统在硬件寄存器直接访问、特殊功能码处理等方面的独特之处。同时,文中还分享了一些基于实践经验得出的重要参数设置及其背后的故事,如特定摩擦补偿系数的选择原因等。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对安川产品有一定了解并希望深入了解其内部工作机制的专业人士。 使用场景及目标:帮助读者掌握安川MP7系列控制器的工作原理,提高对类似系统的维护能力和故障排查效率。对于想要进一步研究或二次开发该系统的开发者来说,也能提供宝贵的参考资料。 其他说明:文章不仅限于理论讲解,还包括了许多来自一线的实际案例和经验教训,使读者能够更好地理解和应用所学知识。
自动化测试与脚本开发_Python3_pynput_键盘鼠标操作录制执行代码生成工具_用于自动化测试_脚本录制_重复操作模拟_宏命令生成_提高工作效率_支持GUI界面_跨平台兼容_
嵌入式八股文面试题库资料知识宝典-深入分析Windows和Linux动态库应用异同.zip
嵌入式八股文面试题库资料知识宝典-C语言总结.zip
内容概要:本文详细探讨了风储直流微电网中母线电压控制的关键技术。首先介绍了风储直流微电网的背景和发展现状,强调了母线电压控制的重要性。接着阐述了永磁风机储能并网技术,解释了永磁风机如何通过直接驱动发电机将风能转化为电能,并确保与电网的同步性和稳定性。然后深入讨论了双闭环控制MPPT技术,这是一种通过内外两个闭环控制系统来实现实时调整发电机运行参数的技术,确保风机始终处于最大功率点附近。最后,文章探讨了储能控制母线电压平衡的方法,即通过储能系统的充放电操作来维持母线电压的稳定。结论部分指出,通过这些技术的有机结合,可以实现对风储直流微电网的有效管理和优化控制。 适合人群:从事新能源技术研发的专业人士、电气工程研究人员、风电系统工程师。 使用场景及目标:适用于希望深入了解风储直流微电网母线电压控制策略的研究人员和技术人员,旨在帮助他们掌握最新的控制技术和方法,以提高系统的稳定性和效率。 其他说明:文章还对未来风储直流微电网的发展进行了展望,指出了智能化和自动化的趋势,以及储能技术的进步对系统性能的影响。
嵌入式八股文面试题库资料知识宝典-C++object-oriented.zip
内容概要:文章详细介绍了HarmonyOS的目录结构及其重要性,从整体框架到核心目录的具体功能进行了全面剖析。HarmonyOS凭借其分布式架构和跨设备协同能力迅速崛起,成为全球操作系统领域的重要力量。文章首先概述了HarmonyOS的背景和发展现状,强调了目录结构对开发的重要性。接着,具体介绍了根目录文件、AppScope、entry和oh_modules等核心目录的功能和作用。例如,AppScope作为全局资源配置中心,存放应用级的配置文件和公共资源;entry目录是应用的核心入口,负责源代码和界面开发。此外,文章还对比了HarmonyOS与Android、iOS目录结构的异同,突出了HarmonyOS的独特优势。最后,通过旅游应用和电商应用的实际案例,展示了HarmonyOS目录结构在资源管理和代码组织方面的应用效果。; 适合人群:具备一定编程基础,尤其是对移动操作系统开发感兴趣的开发者,包括初学者和有一定经验的研发人员。; 使用场景及目标:①帮助开发者快速理解HarmonyOS的目录结构,提高开发效率;②为跨设备应用开发提供理论和技术支持;③通过实际案例学习资源管理和代码组织的最佳实践。; 其他说明:HarmonyOS的目录结构设计简洁明了,模块职责划分明确,有助于开发者更好地管理和组织代码和资源。随着万物互联时代的到来,HarmonyOS有望在开发便利性和生态建设方面取得更大进展,吸引更多开发者加入其生态系统。
内容概要:本文详细介绍了飞轮储能充放电控制的Simulink仿真模型,重点在于采用永磁同步电机的矢量控制和dq轴解耦控制策略。充电时,外环控制转速,内环控制dq轴电流;放电时,外环控制直流母线电压,内环同样控制dq轴电流。文中还讨论了硬件与软件环境的选择,以及仿真模型的调试与运行情况,最终得出该模型具有良好的跟随性能和波形完美度。 适用人群:从事电力电子系统、储能技术和Simulink仿真的研究人员和技术人员。 使用场景及目标:适用于需要对飞轮储能系统进行深入研究和仿真的场合,旨在提高充放电效率和稳定性,满足不同应用场景的需求。 其他说明:该仿真模型已调试完成,可以直接用于进一步的研究和实际应用,为未来的飞轮储能技术研发提供了有价值的参考。
嵌入式八股文面试题库资料知识宝典-北京瑞德方科技.zip
嵌入式八股文面试题库资料知识宝典-同方万维硬件测试工程师.zip
1_15套python PDF格式.zip
内容概要:本文详细介绍了三相三电平整流器的仿真过程及其性能分析。文中首先概述了三相三电平整流器的基本概念及其在电力系统中的重要作用,接着重点探讨了电压电流双闭环控制方式的工作原理和优势,以及SPWM调制技术的具体应用。通过仿真文件展示了整流器在不同条件下的响应情况,验证了这两种技术的有效性和优越性。最后,作者表达了对未来实际应用的期望。 适合人群:从事电力电子研究的技术人员、高校相关专业师生、对电力控制系统感兴趣的工程爱好者。 使用场景及目标:适用于希望深入了解三相三电平整流器工作原理和技术细节的研究人员;目标是在理论基础上掌握电压电流双闭环控制和SPWM调制的实际应用方法。 其他说明:本文提供的仅为仿真文件,未涉及实物实验数据。
嵌入式八股文面试题库资料知识宝典-恒光科技.zip
嵌入式八股文面试题库资料知识宝典-北京天华威视科技有限公司面试题.zip
嵌入式八股文面试题库资料知识宝典-微软研究院笔试题目的答案.zip
Arduino UART实验例程,开发板:正点原子EPS32S3,本人主页有详细实验说明可供参考。
嵌入式八股文面试题库资料知识宝典-朝歌数码.zip
嵌入式八股文面试题库资料知识宝典-Cortex系列.zip
嵌入式八股文面试题库资料知识宝典-中科中科长青笔试题.zip