`
zzc1684
  • 浏览: 1214245 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

JavaScript调试技巧之:断点调试

阅读更多

首先,在各个 浏览器中,断点调试支持的最好的当然是Firefox,Firefox不仅可以使用Firebug调试页面js脚本,还可以用高级调试工具例如 JavaScript Debugger (Venkman) 来调试Firefox扩展里的js。除此之外,Firefox还支持一些更为高级的断点调试、变量监视功能。

其他浏览器里,Opera、Chrome和Safari的调试功能也比较好用。Opera的DragonFly速度相对比较快,界面清爽,功能强大,但不如Safari等友好。相比来说,IE8的程序员工具简直没法用。

这次时间有限,先来总结一下Firefox下的调试技巧。

1. 使用Firebug进行断点调试

使用Firebug调试JavaScript非常方便。具体步骤:

a. 打开Firebug后,启用“脚本”调试,找到引用的脚本文件(或者行内js);

用Firebug找到要调试的脚本(点击放大)

用Firebug找到要调试的脚本(点击放大)

b. 在适当的位置加入断点;

c. 如果断点已经执行过,则刷新页面,这时脚本就会在断点处中断。如果断点没有执行过,那可以直接执行页面上的动作(例如点击按钮等),然后代码会在断点处中断;

用Firebug进行断点调试

用Firebug进行断点调试(点击放大)

d. 观察函数调用栈,观察local变量,也可以进行单步执行,进行调试。

确实非常简单!用Firebug断点调试的优点总结如下:

  • 能加断点的行用绿色行号,非常直观;
  • call stack用两种方式显示出来,很方便;
  • 本地变量的显示非常清晰明了。

2. 使用JavaScript Debugger进行断点调试

这是老牌的调试工具,之前叫做Venkman, 可以以扩展形式安装在Firefox上,我们在这里就称他为Venkman吧。它不仅能够调试页面脚本,还能调试Firefox扩展 (extension)里的js。我们在做Firefox扩展开发时,Venkman是必不可少的工具,老田强力推荐!当然,Firefox本身的逻辑实 现,也是用JavaScript来做到的。我们现在可以用Venkman来调试一下Firefox本身。Firefox的核心js是 browser.js,在这个路径下:

chrome://browser/content/browser.js

我们打开Venkman之后,在Loaded Scripts里填入browser.js,这个js文件就会被过滤出来(如果没有看到browser.js,那么你可能需要查一下是否选上了Debug->Exclude browser files)。

Venkman:选择要调试的js文件

Venkman:选择要调试的js文件(点击放大)

我们找到让浏览器后退的代码,然后点击Firefox的后退按钮,这时Venkman就会停在BrowserBack方法上!让我们再一步一步地看一看,Firefox自己到底做了什么。btw,实现Firefox的js代码也不是很漂亮嘛~~~

用JavaScript Debugger调试Firefox

用JavaScript Debugger断点调试Firefox(点击放大)

Venkman当然也带有一个console,利用这个console,我们可以看一看浏览器层次的window和document都是什么东西。类似于Firebug和其他浏览器的console,只要直接输入js代码片段即可!

使用Venkman自带的console

使用Venkman自带的console(点击放大)

有兴趣的话,可以在这里发现更多有关Firefox开发(以及扩展开发)的好玩的东西!

3. 使用debugger在程序中加入断点

另外还有一个少为人知的断点加入方法。我们可以在程序中加入debugger语句,这样Firefox的调试工具会停留在这条语句上,代码也暂停执行,和加入断点的效果一样。例如:

var myfunc = {
    get_field_value_callback : function() {
        debugger;
        var ed = this, target = ed.currSpan;
        /* do something more */
    }
}

这时重新加载页面,断点就会停留在debugger语句上。这样,我们就可以在写代码时随心所欲地加入断点了。另外,其他浏览器(包括IE8!Surprise!)同样支持debugger语句!

 

上次总结了Firefox下进行JavaScript断点调试的技巧,这次来看一下其他浏览器下的调试。一点说明,这里的调试技巧都不借助于浏览器之外的工具,例如Aptana,VS2008等。如果要找这方面的一些资料,我这里没有哈。

其他浏览器,主要是Opera, Safari, Chrome和IE8。这之中除了IE8,它们的调试功能都挺不错的,基本都可以搜索脚本,加入断点,查看调用栈、本地变量,以及强大的console。

1. 使用Opera的Dragonfly进行断点调试

使用Opera进行断点调试

使用Opera Dragonfly进行断点调试

 

打开Tools – Advanced – Developer Tools,即可看到类似于Firebug的开发工具,名字叫做Dragonfly,也就是蜻蜓。在这里可以查看页面结构,查看网络交互,以及断点调试,并且可以在调试过程中使用Command Line (console)。

Opera on WindowsXP也属于YUI要支持的A-grade(详见此表格),所以我们在开发的时候,也要尽量去支持。此外Dragonfly的DOM查看工具有一个亮点,Export current DOM view。我们可以在线做一些DOM改动,然后Export一下,即可得到改动后的HTML代码,非常方便。

2. 使用Chrome和Safari进行断点调试

如果你觉得 Opera太小众,那么你可以在Safari或者Chrome上进行调试。两个浏览器的调试方式、界面极其相似,所以这里以Safari 4.0为例。打开Menu – Develop – Start Debugging JavaScript,即可弹出一个调试工具。值得一提的是,Safari和Chrome的调试工具最好不要Dock到浏览器下面,因为弹出来的话,调试 界面是刚刚好的。

首先找到要调试的脚本:

使用Safari进行JavaScript调试:找到脚本

使用Safari进行JavaScript调试:找到脚本

设置断点,重新加载页面(或者执行动作):

使用Safari进行JavaScript调试:设置断点

使用Safari进行JavaScript调试:设置断点

在右侧查看本地变量和函数调用栈:

使用Safari进行JavaScript调试:变量查看

使用Safari进行JavaScript调试:变量查看

Safari的调试工具一个亮点是,console和断点调试在同一个界面上,这样可以非常方便地在程序中断时,利用console来做一些验证操作。

3. IE8的断点调试功能

IE8自带的开发者工具,虽然极其难用,但也可以断点调试。断点调试的方法与上述雷同。

使用IE8开发者工具进行断点调试

使用IE8开发者工具进行断点调试

可以看 到,IE8似乎莫名其妙地终止了js代码的识别。这样的话,从74行往后,都没办法加断点了,真不可思议。但我们有时为了兼容IE,不得不在IE下进行一 些调试,怎么办呢?可以用上一篇文章的办法,在需要中断的位置加入debugger语句,这样程序运行时,IE8就会中断在debugger语句上了。

分享到:
评论

相关推荐

    用webstorm和vscode断点调试vue

    在现代前端开发中,Vue.js作为一个流行的JavaScript框架,它的应用...熟练掌握这些工具的断点调试技巧,将极大地提升开发体验和代码质量。在实际开发中,根据个人习惯和团队协作需求,选择合适的IDE进行Vue项目开发。

    javascript调试器工具

    在使用JavaScript调试器时,应学会有效地利用其特性,如合理设置断点,通过查看调用栈理解代码执行顺序,以及利用监视表达式来跟踪变量的变化。此外,对于复杂的异步问题,还可以利用Promise或async/await的跟踪,来...

    JavaScript调试(Firefox) 手册

    JavaScript调试是Web开发中的关键技能,它帮助开发者追踪和修复代码中的错误,提高代码质量。在Firefox中,Venkman是一个强大的JavaScript调试器,专为深入理解JavaScript代码的行为而设计。以下是在Firefox中使用...

    让JavaScript调试变得简单

    总之,熟练掌握JavaScript调试技巧和工具,不仅可以快速定位和修复问题,还能帮助你更好地理解和优化代码,提高整体开发质量。不断实践和探索,你将发现JavaScript调试其实并不复杂,反而能成为一种乐趣。

    VS 调试 JavaScript.txt

    通过本文的介绍,我们了解了如何在Visual Studio中进行JavaScript代码的调试,包括配置调试环境、设置断点以及使用各种调试技巧。这些知识对于提高代码质量和开发效率具有重要意义。希望开发者们能够充分利用Visual ...

    IE的JavaScript调试工具

    JavaScript是Web开发中不可或...随着IE浏览器的逐步淘汰,开发者更多地转向了Edge或其他现代浏览器,但这些基本的调试技巧仍然适用于大多数现代浏览器的开发者工具,如Chrome的DevTools或Firefox的Developer Edition。

    vs2003 Javascript调试工具

    **JavaScript调试工具在VS2003中的应用与详解** Visual Studio 2003(简称VS2003)是微软开发的一款强大的集成开发环境(IDE),它为程序员提供了全面的开发支持,包括对JavaScript的调试功能。JavaScript,作为一...

    火狐浏览器调试技巧.rar

    9. **断点调试**:在源代码中设置断点,可以让代码在特定行暂停,逐行执行,查看变量变化,便于理解代码流程。 10. **JavaScript源映射**:当使用压缩后的JS文件时,源映射功能可以将错误信息映射回原始未压缩的...

    js,javascript调试工具

    JavaScript调试是Web开发中的关键环节,它允许开发者深入代码内部,找出并修复错误,优化性能。JavaScript调试工具是实现这一目标的重要辅助手段。在本文中,我们将深入探讨JavaScript调试工具的功能、使用方法以及...

    JavaScript调试 (告别alert() )

    JavaScript调试是开发者日常工作中不可或缺的一部分,它帮助我们找出代码中的错误、性能问题以及逻辑缺陷。在早期,开发者常使用`alert()`函数进行简单的调试,但这种方法往往效率低下且不适用于复杂的场景。随着...

    JavaScrip调试技巧之断点调试

    Firefox是支持断点调试最出色的浏览器之一。它提供了一个强大的工具——Firebug,它不仅允许你在JavaScript脚本中设置断点,还可以通过高级调试工具JavaScript Debugger (Venkman) 调试Firefox扩展中的JS。在Firebug...

    XPages 基本调试技巧

    本文旨在深入探讨XPages的服务器端JavaScript/Java调试技巧,帮助初级开发者减少调试时间,专注于XPages开发的核心。 #### 客户端与服务器端JavaScript的区别 在XPages开发中,JavaScript扮演了核心角色,被分为...

    javascript调试之DOM断点调试法使用技巧分享

    总结来说,DOM断点调试法是一种在JavaScript调试过程中非常实用的技术,它可以帮助开发者快速准确地定位到操作DOM元素属性的脚本,特别是在复杂的页面项目中。熟练掌握这一技术,将大大提高前端开发和调试的效率。

    微软的javascript调试工具

    对于初学者和经验丰富的开发者来说,熟练掌握JavaScript调试技巧是提高代码质量和解决问题的关键步骤。因此,了解和学习如何使用微软或其他平台提供的JavaScript调试工具对于任何Web开发者都至关重要。

    使用Chrome调试JavaScript的断点设置和调试技巧

    在JavaScript开发过程中,调试是必不可少的一个环节,而Chrome的开发者工具提供了一套强大的JavaScript调试工具,特别是对于断点设置和调试技巧的运用,能够极大提高我们的工作效率。本文将详细介绍如何在Chrome中...

    如何使用chrome自带的Javascript调试工具

    掌握 Chrome DevTools 的 JavaScript 调试技巧,将极大地提升你在前端开发中的效率,帮助你快速定位和修复问题,优化代码性能。在实际使用中,不断探索和实践,你会发现更多实用的功能和快捷操作。

    IE中javascript调试工具

    IE(Internet Explorer)浏览器曾经提供了一套内置的JavaScript调试工具,这对于理解JavaScript的运行机制和优化代码非常有用。本文将详细介绍IE中的JavaScript调试工具及其使用方法。 ### IE JavaScript调试工具 ...

Global site tag (gtag.js) - Google Analytics