前面我们介绍了IE11的Developer Tools中的第一个工具--DOM Explorer,这篇文章介绍第二个工具--控制台(Console),使用控制台工具查看错误和其他信息、发送调试输出、检查JavaScript对象和XML节点,以及在所选窗口或框架的上下文中运行JavaScript。

控制台工具的主要用途是与运行的网页进行向内和向外的通信:

  向内:可以运行JavaScript以查看和更改正在运行的网页中的值、向运行的代码添加函数,以及在执行代码时运行调试代码。
  向外:IE和JavaScript代码将向开发人员提供状态、错误和调试消息,包括可检查的JavaScript对象和DOM节点。

控制台具有一个"目标(Target)"下拉菜单,可以从中选择"iframe" 或 "_top"来运行控制台命令,如果网页中没有"iframe", "_top"将是唯一选择,如下图所示:

在控制台的监控下,可以看到IE系统消息具有三个分类:

  信息:你看你希望了解的非重要信息
  警告:网页中可能存在错误,它不一定会打断网页,但可能导致异常行为
  错误:使代码无法运行的严重错误

默认情况下,三种分类都会显示出来,但也可以根据需求选择自己需要显示的内容:

从上图可以看出,在控制台的监控下,各种错信息的数量,而且除了可以选择查看分类信息之外,还可以清空信息。如果选择“导航时清除”图标,即倒数第二个图标被高亮时,控制台将在每次浏览器导航到新网页时执行清除,这时,我们只能看到当前网页消息,反之,将会保存以前的网页的信息,同时,以前的网页消息呈现灰色,以便区分它们是否来自当前网页。

在控制台右下角,我们可以看到如下图所示的三个按钮:

点击最后一个按钮,即朝上的箭头按钮,可以打开控制台输入页面,这提供给开发人员从代码发送到控制台的消息,其中消息可以分成:自定义消息、可检查的对象和节点、计数器、计时器、断言、跟踪和分析。输入代码之后点击中间的绿色箭头,可以在控制台消息里看到相应的返回,如下图所示:

接下来分别介绍这些信息。

自定义消息

上图中的console.log()即为自定义消息之一,它显示不带警报图标的纯文本,另外三个是系统消息的格式:console.info()--用于信息消息,console.warn()--用于警告消息,console.error()--用于错误消息,它们与控制台提供的消息查看是一致的。

编码的过程中,可以直接用文本作为参数,同样,也可以是变量的方式或者文本与变量同时使用的方式,甚至可以进行变量替换:

可检查的对象和节点

要显示可检查的JavaScript对象,可以使用console.dir(),将其发送到控制台

要显示可检查的DOM节点,可以使用console.dirxml(),将其发送到控制台

这里我们需要注意,对参数的选取,需要获得元素的id,如果id不存在,将会提示undefined。对于已经获得的对象或节点,可以展开查看具体的内容。

 计数器

虽然在代码中设置计数器相对简单,但它仍是一项重复的任务。我们可以使用console.count()方法进行简单的速记,其字符串包含作为参数的计数器标签。首次与特定标签一起使用时,将在控制台输出中建立一个计数器。之后使用带有相同标签的console.count()时,计数器的计数将累加,要将计数器重置为0,使用console.countReset()。

计时器

计时器类似于计数器,在代码的任意位置使用console.time()就可以启动计时器了,同时,使用console.timeEnd()来结束计时器并将结果发送给控制台。

如上图所示,因为对console.time()和console.timeEnd()方法中没有传入参数,因此,计时的时候显示的是“default”标签,如果需要自己定义标签,只需要向方法传递我们需要的字符串标签即可。

同时,我们也可以使用console.timeStamp()方法,该方法返回的是加载网页的时间:

它们都是用毫秒来计时的,如果你结合UI响应能力分析会话期间来使用它的话,除了控制台输出外,还会将用户标记以及自会话启动以来的时间添加到会话时间线中。

断言

断言对于调试代码有一定的帮助,在控制台中使用它,也可以让我们较为清晰地看到问题的所在。在控制台中使用断言,只需要使用console.assert()方法即可,如果第一个参数为false, 将运行console.error()弹出错误消息,同时可以看到详细的错误信息:

跟踪和分析

了解从何处调用了你的代码,正在运行的是哪个代码,以及执行任务需要多长时间,这些信息对于分析速度缓慢或异常行为非常有用。

堆栈跟踪通过向上追溯路径的跟踪请求向你显示到达当前代码的执行路径。可以在代码中使用console.trace()方法来显示堆栈跟踪。

在一些实例中,查看两点间运行的代码的每个部分将十分有用,探查器是用于该目的的最佳工具,但在一些情况下可能需要比手动停止和开始更高的精确度。在代码中精确地开始和停止探查器可以使用console.profile()和console.profileEnd()。

注意:覆盖分析会话可能会创建异常报告。在首次测试运行时,使用console.trace()替代console.profile()来确保不会在结束分析前多次调用console.profile().

由于要处理发送到控制台的所有类型的消息和内容,跟踪它们可能比较困难,可以使用分组命令:console.group(), console.groupCollapsed(), console.groupEnd().

在命令行中输入的所有脚本都会在点击了运行之后在当前选定窗口的全局范围内执行,在命令行中输入任何有效的JavaScript,还可以将JavaScript发送到控制台。

下一篇文章将介绍调试(Debugger)部分的内容。

IE11之F12 Developer Tools--控制台工具(Console)的更多相关文章

  1. IE11之F12 Developer Tools--概述篇

    打开Developer Tools的方法: a. 点击F12 b. 在浏览器中选择Tools-->F12 Develooper Tools 打开后图示: 从上图我们可以看到,Developer ...

  2. IE11之F12 Developer Tools--调试器(Debugger)

    使用调试器工具在代码运行时对其导航.设置监视点和断点,查看调用堆栈,以及提高编译/精简JavaScript的可读性. 调试器可以帮助你了解为何你的代码片段会出现未按照预期方式运行.未在预期时间运行及在 ...

  3. React - React Developer Tools开发者工具的安装与使用(Chrome调试插件)

    原文地址:http://www.cnplugins.com/zhuanti/how-to-use-react-tools.html 虽然我们曾经在React开发者工具的基础介绍里面有概括性的介绍过Re ...

  4. IE11之F12 Developer Tools--DOM Explorer

    使用DOM Explorer工具查看网页的DOM状态.检查HTML结构和CSS样式,并测试更改以解决显示问题.这可以在元素位置错误或行为异常时帮助你诊断问题,然后解决问题. DOM Explorer图 ...

  5. Chrome的开发者工具(Chrome Developer Tools)

    Chrome的开发者工具(Chrome Developer Tools) 按F12 https://developer.chrome.com/devtools/index http://www.w3s ...

  6. Phalcon 开发工具(Phalcon Developer Tools)

    Phalcon提供的这个开发工具主要是用来辅助开发,比方生成一些程序的基本框架.生成控制器模型等. 使用这个工具我们仅仅须要一个简单的命令就可以生成应用的基本框架. 很重要: 要使用这个工具我们必需要 ...

  7. IE11 开启F12开发人员工具中的 始终从服务器刷新

    在进行页面脚本调试时,经常需要清除浏览器缓存来获取最新的脚本文件,IE11之前的浏览器版本我们可以按F12调出开发人员工具,在缓存选项中开启"始终从服务器中刷新"的设置后我们就不需 ...

  8. 使用IE11的F12开发人员工具进行网页前端性能测试

    用IE访问被测网站(我的是IE11,EDGE浏览器相同),定位到你要测试的动作所在页面或被测页面的前一页.按F12调出开发人员工具,其它的功能我就不介绍了,直接切换到性能选项卡. 根据提示按快捷键ct ...

  9. Chrome调试工具Developer Tools——前端必备神器

    本文链接:https://blog.csdn.net/u012542647/article/details/79401485 今天要给大家介绍一个神器,就是谷歌浏览器(Chorme)自带的前端调试工具 ...

随机推荐

  1. 用CSS box-shadow画画

    原理:找一幅画,每隔5 pixel取一个点的RGB,在CSS中用box-shadow描绘出这个点 Python from PIL import Image if __name__ == '__main ...

  2. 【linux】如何将Vim打造成一个成熟的IDE

    如果你稍微写过一点代码,就能知道“集成开发环境”(IDE)是多么的便利.不管是Java.C还是Python,当IDE会帮你检查语法.后台编译,或者自动导入你需要的库时,写代码就变得容易许多.另外,如果 ...

  3. 面包板入门电子制作(class1)视频 全套30集高清

    面包板入门电子制作(class1)套件(30集高清) 本套件以电子制作中最基础的元器件在面包板上搭建电路,用启发性的视频教学方式,使学习者熟悉电子电路基础.发挥想像力.在创新设计和制作中学会独立设计和 ...

  4. 如何利用OCS缓存TomcatSession全局变量(转)

    转: 首先非常感谢阿里云给我们提供了一个如此省事的平台. 我们公司是一家物流公司,主要提供运输和仓储的服务.我们现在正在把我们的系统往阿里云迁移.当然,还在迁移过程中,所以还有很多是没办法现在说得太清 ...

  5. 解决genemotion模拟器冲突导致的Android Studio无法启动ADB的问题

    首先命令行下运行 adb nodaemon server ./adb nodaemon server (Mac OSX) 如果出现错误: error: could not install *smart ...

  6. Python中import的使用

    python中的import语句是用来导入模块的,在python模块库中有着大量的模块可供使用,要想使用这些文件需要用import语句把指定模块导入到当前程序中. import语句的作用 import ...

  7. [原创]android自定义动画的一点感悟

    android提供了一系列的动画处理api,包括animator以及animation等.由于动画效果是根据人眼视觉残留原理形成的,因此动画过程中android需要不断频繁的更新view的相关属性,由 ...

  8. 阅读《Effective C++》系列

    <Effective C++>条款07:为多态基类声明virtual析构函数 这样做主要是为了防止内存泄漏,见我hexo博客. C++的虚析构函数 <Effective C++> ...

  9. Silverlight:版本控制的衍化

    版本控制是企业开发中一个老生长谈的主题,这也是大部分公司新人进来后需要接纳的一个基础知识体系. 从08年首次接触商业软件编写后,这几年先后接触了SVN,TFS,Git这几个主要的版本控制器,但是并没有 ...

  10. PlayFramework 1.2.x 在Controller 中识别JSON提交

    链接 http://stackoverflow.com/questions/6132892/consuming-json-in-play-framework-controller @Global pu ...