作者: 阮一峰

日期: 2011年3月26日

Firebug是网页开发的利器,能够极大地提升工作效率。

但是,它不太容易上手。我曾经翻译过一篇《Firebug入门指南》,介绍了一些基本用法。今天,继续介绍它的高级用法。

===================================

Firebug控制台详解

作者:阮一峰

控制台(Console)是Firebug的第一个面板,也是最重要的面板,主要作用是显示网页加载过程中产生各类信息。

一、显示信息的命令

Firebug内置一个console对象,提供5种方法,用来显示信息。

最简单的方法是console.log(),可以用来取代alert()或document.write()。比如,在网页脚本中使用console.log("Hello World"),加载时控制台就会自动显示如下内容。

另外,根据信息的不同性质,console对象还有4种显示信息的方法,分别是一般信息console.info()、除错信息console.debug()、警告提示console.warn()、错误提示console.error()。

比如,在网页脚本中插入下面四行:

  console.info("这是info");

  console.debug("这是debug");

  console.warn("这是warn");

  console.error("这是error");

加载时,控制台会显示如下内容。

可以看到,不同性质的信息前面有不同的图标,并且每条信息后面都有超级链接,点击后跳转到网页源码的相应行。

二、占位符

console对象的上面5种方法,都可以使用printf风格的占位符。不过,占位符的种类比较少,只支持字符(%s)、整数(%d或%i)、浮点数(%f)和对象(%o)四种。

比如,

  console.log("%d年%d月%d日",2011,3,26);

  console.log("圆周率是%f",3.1415926);

%o占位符,可以用来查看一个对象内部情况。比如,有这样一个对象:

  var dog = {} ;

  dog.name = "大毛" ;

  dog.color = "黄色";

然后,对它使用o%占位符。

  console.log("%o",dog);

三、分组显示

如果信息太多,可以分组显示,用到的方法是console.group()和console.groupEnd()。

  console.group("第一组信息");

    console.log("第一组第一条");

    console.log("第一组第二条");

  console.groupEnd();

  console.group("第二组信息");

    console.log("第二组第一条");

    console.log("第二组第二条");

  console.groupEnd();

点击组标题,该组信息会折叠或展开。

四、console.dir()

console.dir()可以显示一个对象所有的属性和方法。

比如,现在为第二节的dog对象,添加一个bark()方法。

  dog.bark = function(){alert("汪汪汪");};

然后,显示该对象的内容,

  console.dir(dog);

五、console.dirxml()

console.dirxml()用来显示网页的某个节点(node)所包含的html/xml代码。

比如,先获取一个表格节点,

  var table = document.getElementById("table1");

然后,显示该节点包含的代码。

  console.dirxml(table);

六、console.assert()

console.assert()用来判断一个表达式或变量是否为真。如果结果为否,则在控制台输出一条相应信息,并且抛出一个异常。

比如,下面两个判断的结果都为否。

  var result = 0;

  console.assert( result );

  var year = 2000;

  console.assert(year == 2011 );

七、console.trace()

console.trace()用来追踪函数的调用轨迹。

比如,有一个加法器函数。

  function add(a,b){

    return a+b;

  }

我想知道这个函数是如何被调用的,在其中加入console.trace()方法就可以了。

  function add(a,b){

    console.trace();

    return a+b;

  }

假定这个函数的调用代码如下:

  var x = add3(1,1);

  function add3(a,b){return add2(a,b);}

  function add2(a,b){return add1(a,b);}

  function add1(a,b){return add(a,b);}

运行后,会显示add()的调用轨迹,从上到下依次为add()、add1()、add2()、add3()。

八、计时功能

console.time()和console.timeEnd(),用来显示代码的运行时间。

  console.time("计时器一");

  for(var i=0;i<1000;i++){

    for(var j=0;j<1000;j++){}

  }

  console.timeEnd("计时器一");

九、性能分析

性能分析(Profiler)就是分析程序各个部分的运行时间,找出瓶颈所在,使用的方法是console.profile()。

假定有一个函数Foo(),里面调用了另外两个函数funcA()和funcB(),其中funcA()调用10次,funcB()调用1次。

  function Foo(){

    for(var i=0;i<10;i++){funcA(1000);}

    funcB(10000);

  }

  function funcA(count){

    for(var i=0;i<count;i++){}

  }

  function funcB(count){

    for(var i=0;i<count;i++){}

  }

然后,就可以分析Foo()的运行性能了。

  console.profile('性能分析器一');

  Foo();

  console.profileEnd();

控制台会显示一张性能分析表,如下图。

标题栏提示,一共运行了12个函数,共耗时2.656毫秒。其中funcA()运行10次,耗时1.391毫秒,最短运行时间0.123毫秒,最长0.284毫秒,平均0.139毫秒;funcB()运行1次,耗时1.229ms毫秒。

除了使用console.profile()方法,firebug还提供了一个"概况"(Profiler)按钮。第一次点击该按钮,"性能分析" 开始,你可以对网页进行某种操作(比如ajax操作),然后第二次点击该按钮,"性能分析"结束,该操作引发的所有运算就会进行性能分析。

十、属性菜单

控制台面板的名称后面,有一个倒三角,点击后会显示属性菜单。

默认情况下,控制台只显示Javascript错误。如果选中Javascript警告、CSS错误、XML错误都送上,则相关的提示信息都会显示。

这里比较有用的是"显示XMLHttpRequests",也就是显示ajax请求。选中以后,网页的所有ajax请求,都会在控制台面板显示出来。

比如,点击一个YUI示例,控制台就会告诉我们,它用ajax方式发出了一个GET请求,http请求和响应的头信息和内容主体,也都可以看到。

[参考文献]

* Firebug Tutorial - Logging, Profiling and CommandLine (Part I)

* Firebug Tutorial - Logging, Profiling and CommandLine (Part II)

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0
  • 原文网址:http://www.ruanyifeng.com/blog/2011/03/firebug_console_tutorial.html
  • 最后修改时间:2011年9月16日 09:43
  • 付费支持(说明): |

转载于:https://www.cnblogs.com/ginowang42/archive/2011/10/31/2230459.html

Firebug控制台详解相关推荐

  1. Firebug控制台详解[转]

    Firebug是网页开发的利器,能够极大地提升工作效率. 但是,它不太容易上手.我曾经翻译过一篇<Firebug入门指南>,介绍了一些基本用法.今天,继续介绍它的高级用法. ======= ...

  2. Firebug控制台详解(转)

    本文转自:http://www.ruanyifeng.com/blog/2011/03/firebug_console_tutorial.html 作者: 阮一峰 日期: 2011年3月26日 Fir ...

  3. Firebug使用详解

    Firebug使用详解 本文主要是为初学者介绍一下Firebug的基本功能与如何使用Firebug. 由于本人水平与能力有限, 在文章中的可能会有很多错误与遗漏, 希望大家能谅解和指正! 转自 htt ...

  4. Javascript的调试利器:Firebug使用详解

    copy from: http://blog.csdn.net/tianxiaode/archive/2007/09/02/1769152.aspx Javascript的调试,是开发Web应用尤其是 ...

  5. Javascript的调试利器:Firebug使用详解(上)

    Javascript的调试,是开发Web应用尤其是AJAX应用很重要的一环,目前对Javascript进行调试的工具很多,我比较喜欢使用的是Firebug.Firebug是Joe Hewitt开发的一 ...

  6. RabbitMQ控制台详解

    文章目录 属性 说明 overview→Totals 所有队列的阻塞情况 Ready 待消费的消息总数 Unacked 待应答的消息总数 Total 总数 Ready+Unacked 属性 说明 Pu ...

  7. Console命令详解,让调试js代码变得更简单

    console.log(object[, object, ...]) 在控制台输出一条消息.如果有多个参数,输出时会用空格隔开这些参数. 第一个参数可以是一个包含格式化占位符输出的字符串,例如: co ...

  8. js调试控制台使用详解图解

    一 实例图解 四种不同的console输出函数,输出信息前显示不同的图标: $查看某个元素: console.dir()可以显示一个对象所有的属性和方法: 分组显示信息: 显示digitalData对 ...

  9. Chrome控制台使用详解

    Chrome控制台使用详解 console.log 按信息级别归类 console.log:普通信息 console.info:提示类信息 console.error:错误信息 console.war ...

最新文章

  1. Java项目:课程资源管理+在线考试平台(java+SSH+mysql+maven+tomcat)
  2. PHPStorm2016如何安装主题
  3. 【脚本整理】docker-compose 部署prometheus + grafana
  4. 收集iOS程序的代码覆盖率
  5. Android programming on Mac 之安装Eclipse
  6. 无域名限制版小智收录网+简单的zblog导航网模板
  7. PyQt学习笔记(二)将PyQt项目转化为WIN下的可执行程序
  8. Jasmine入门(上)
  9. 【Python】利用MD5文件去重
  10. 电信天翼网关连接多个路由器
  11. 【音视频基础】视频基础理论
  12. Ceph集群搭建及其运用(块存储、ceph文件系统)
  13. Annoy算法简单介绍
  14. 内存占用过高的原因及解决方法
  15. Unity 单例基类(运用单例模式)
  16. map的嵌套使用方法
  17. 如何把阿里云盘变成本地硬盘
  18. ThinkPad适不适合计算机专业,工作也可以毫不费力 什么牌子的电脑好
  19. Visual Studio 2019版本运行报错解决方案
  20. 毕业设计-基于微信小程序的实验室仪器设备管理系统

热门文章

  1. 前端学习(3207):js中的事件绑定
  2. [html] 如何禁止html页面缓存?
  3. [html] html5点击返回键怎样不让它返回上一页
  4. [html] 写一个类似刮刮卡效果的交互,即鼠标划过时显示号码
  5. 前端学习(2791):实现上拉加载更多
  6. 工作38:实现分页秀呀
  7. 前端学习(2323):angular文件介绍
  8. 前端学习(872):注册事件兼容性处理
  9. spring学习(39):注入map类型
  10. JQ trigger触发a标签点击事件