关于javascript:译像高级前端开发人员一样使用Chrome-DevTools

3次阅读

共计 3128 个字符,预计需要花费 8 分钟才能阅读完成。

原文地址:https://medium.com/javascript…

作者:Dornhoth

如果抉择 Chrome 作为开发环境,则必须晓得的 11 个技巧。

好的,当初因为某种原因,你最终抉择了 Chrome 为开发应用的浏览器。而后,你关上了开发者工具(Developer Tools)并开始调试代码。

有时你能够关上控制台面板(Console panel)来检查程序的输入,或者关上元素面板(Elements panel)来查看 DOM 元素的 CSS 代码。

然而你真的理解 Chrome 开发者工具(DevTools)吗?实际上,它提供了许多弱小但未知的性能,能够大大提高咱们的开发效率。

在这里,我将介绍最有用的性能,心愿对你有所帮忙。

在开始之前,我想介绍一下命令菜单(Command menu)。命令菜单对于 Chrome 就像 Shell 对于 Linux 一样。命令菜单容许你输出一些命令来操作 Chrome。

首先,咱们关上 Chrome 开发工具,而后用以下快捷方式关上命令菜单:

windows:Ctrl + Shift + P
macOS:Cmd + Shift + P

或者咱们能够单击上面的按钮将其关上:

而后咱们能够到命令面板,在这里咱们能够抉择各种命令来执行各种弱小的性能。

弱小的屏幕截图

捕获屏幕的一部分是一个十分常见的需要,并且我确定你以后的计算机上曾经具备十分不便的截图软件。然而,你能够实现以下工作吗?

  • 截取网页上所有内容的屏幕快照,包含可视窗口中未呈现的所有内容
  • 准确捕捉 DOM 元素的内容

这是两个常见的需要,然而应用操作系统附带的截屏工具并不能很容易地解决它们。此时,咱们能够应用命令来帮忙咱们实现这个需要。

对应的命令是:

Screenshot Capture full size screenshot

Screenshot Capture node screenshot

例子

当初关上任何页面,例如,Medium 上的对于 JavaScript 的头条新闻页面。https://medium.com/tag/javascript

而后关上命令菜单并执行 Screenshot Capture full size screenshot

而后,咱们能够取得以后页面的残缺屏幕截图。

下面的原始图像十分清晰,但这里我上传了一个压缩图像,以节俭您的流量。

相似地,如果要截取 DOM 元素的屏幕快照,你能够应用零碎本人的屏幕截图工具,然而你不能精确地捕捉该元素。此时,您能够应用Capture node screenshot

首先,在元素面板中抉择一个元素,而后运行命令。

这是精确的截屏后果:

在控制台中援用上一个操作的后果

咱们常常须要在控制台中调试代码。假如你想晓得如何在 JavaScript 中反转字符串,而后在网上搜寻相干信息并找到以下代码。

'abcde'.split('').reverse().join('')

好吧,下面的代码的确反转了字符串。然而你依然不了解 split() reverse() join() 办法的作用以及运行这些两头步骤的后果。所以当初你想要一步一步地执行下面的代码,你能够这样写:

好吧,在这些步骤之后,咱们的确晓得每个办法运行的返回值。

但这是十分多余的。它既容易出错,又难以了解。实际上,在控制台中,咱们能够应用神奇的变量 $_ 来援用先前操作的后果。

$_是一个非凡的变量,它的值总是等于控制台中最初一次操作的后果。这种技术是调试代码的简便办法。

从新发送 XHR 申请

在咱们的前端我的项目中,咱们常常须要应用 XHR 向后端发出请求以获取数据。如果你想从新发送一个 XHR 申请,会怎么做呢?

对于老手,他可能会刷新页面,但这可能很麻烦。实际上,咱们能够间接在网络面板(Network panel)中进行调试。

  • 关上网络面板
  • 点击 XHR 按钮
  • 抉择您要从新发送的 XHR 申请
  • 重发 XHR

这是一个 gif 例子:

监控页面加载状态

页面从一开始就齐全加载可能须要 10 秒以上的工夫。咱们须要监控页面在不同期间是如何加载的。

在 Chrome 开发者工具中,咱们能够在网络面板下,抉择 Capture Screenshots 取得页面加载的截图。

单击每个屏幕截图,以显示相应工夫的网络申请。这种直观的演示将使你更好地理解每时每刻正在产生的网络申请。

复制变量

你能够将 JavaScript 变量的值复制到其余中央吗?
这仿佛是一个不可能实现的工作,但在 Chrome 中,有一个名为 copy 的函数能够帮忙你复制一个变量。

复制函数不是由 ECMAScript 定义的,而是由 Chrome 提供的。应用此函数,能够将 JavaScript 变量的值复制到剪贴板中。

将图像复制为 data URI

有两种办法能够解决页面上的图像,一种是通过内部资源链接加载,另一种是将图像编码为 data URLs。

Data URLs,以 Data: 协定为前缀的 url,容许内容创建者将小文件内联嵌入文档中。它们以前被称为“data URIs”,直到 WHATWG 不再应用这个名称。

将这些小图像编码到 Data URLs 中,并将它们间接嵌入到咱们的代码里,能够缩小页面须要收回的 HTTP 申请数,从而放慢页面加载速度。

在 Chrome 中,咱们如何将图像转换为 data URL 呢?

这是一个 gif:

表格对象数组(Table object array)

假如咱们有一个这样的对象数组:

let users = [{{name:'Jon',age:22},{name:'bitfish',age:30},{name:'Alice',age:33}]

这样的数组不容易在控制台中查看。如果数组更长,元素更简单,那么就更难了解了。
侥幸的是,Chrome 提供了一个表格函数,能够将对象数组制成表格。

在许多状况下,此性能十分有用。

拖放元素面板(Elements panel)

有时咱们须要调整页面上某些 DOM 元素的地位来测试 UI。在元素面板,你能够拖放任何 HTML 元素,并更改其在页面中的地位:

在下面的 gif 中,我在元素面板中拖动 div 的地位,它在页面上的地位会同步扭转。

在控制台中援用以后选定的元素

$0是另一个魔法变量,它援用元素面板中以后抉择的元素。

触发 CSS 伪类

伪类容许您将款式利用到一个元素时,不仅与文档树的内容无关, 还与内部因素无关, 例如导航的历史(:visited 等), 其内容的状态(如 :checked 在某些表单元素), 或鼠标的地位(如 :hover,它能够让你晓得鼠标是否在元素上)。

咱们能够为一个元素编写多个伪类,为了不便对这些款式的测试,咱们能够间接元素面板中触发这些款式。

示例

这是一个页面:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    body{font-size: 150px;}

    div:hover{color: red;}
    div:active{color: blue;}
    div:focus{color: brown;}
  </style>
</head>
<body>
  <div>hello world</div>
</body>
</html>

而后咱们在浏览器中关上它,并通过元素面板调试它的伪类款式。

暗藏元素的快捷方式

在调试 CSS 款式时,咱们常常须要暗藏一个元素。如果咱们抉择元素并按下键盘上的 H 键,咱们能够疾速暗藏元素。

这个操作是将 visibility: hidden !important; 款式增加到相应的元素。

将 DOM 元素存储在全局长期变量中

如果咱们想在控制台中疾速取得一个 DOM 元素援用,咱们能够这样做:

  • 抉择元素
  • 右击鼠标
  • 存储为全局变量

正文完
 0