Chrome 开发者工具(DevTools)是一组在 Google Chrome 浏览器内直接诊断和解决 Web 开发问题的工具。它提供了对网站内部运行方式的直接访问 - 可以检查 HTML 和 CSS,调试 JavaScript,分析性能,并实时查看代码的立即影响。
这种直接访问网站内部运行方式对于快速高效地诊断问题非常重要,确保您的 Web 应用程序既具有良好的性能又没有错误。
Chrome DevTools 是一组工具,对于在 Google Chrome 浏览器内进行 Web 开发的人来说是不可或缺的。它提供直接访问网页内部结构的功能 - 可以检查 HTML 和 CSS,调试 JavaScript,分析性能,并实时查看代码的立即影响。
要在 Chrome 浏览器中打开 DevTools,您可以通过以下方式之一:
通常,它会以分屏界面打开,要么在当前网页下方,要么在其旁边。一旦打开,其功能将排列在 DevTools 窗口顶部的选项卡中。这些选项卡包括:Elements(元素)、Console(控制台)、Source(源代码)、Network(网络)、Application(应用程序)、Security(安全)、Memory(内存)、Performance(性能)、Audits(审核)。
DevTools 充满了对 Web 开发人员至关重要的功能,可以简化其工作流程的各个方面。让我们现在详细看看其中的一些。
该面板用于实时检查和修改网页的 HTML 和 CSS,非常适用于调试布局问题或在实际代码中应用新样式之前进行实验。您还可以查看 DOM(文档对象模型)的结构。
该面板作为您在浏览器内部 JavaScript 的互动游乐场。无论是使用快速的 console.log()跟踪难以捉摸的错误还是在 Console 面板中测试 JavaScript 片段和查看当前加载的网页中的任何日志或错误,都可以进行实验。
该面板为您提供网页上所有网络活动的概览 - 从跟踪加载的每个资源到网站如何与服务器通信。
该面板用于捕获和分析网站的性能指标。它显示与页面交互时发生的所有活动。
以上只是可用的众多面板中的一小部分,但它们是最受欢迎和必须了解的。正确使用它们将使您的开发过程更直观和令人满足。
在以下互动示例中,我故意在 Codepen 中创建了一个小项目,并引入了一些问题,以模拟使用 Chrome DevTools 进行实际调试的场景。
我们的小项目包含一个模态框,点击后应显示一个带有一些重要信息的模态窗口。但是有一个 bug 阻止了这个过程。这为实际演示如何使用 Elements 面板来排除样式和结构问题创造了一个场景。
尝试通过点击“Click me to learn a secret”按钮触发模态框。由于我们设置了它不能工作,右键单击模态框应该出现的区域,选择“检查”以打开 DevTools 的 Elements 面板。
在 Elements 面板中,定位 DOM 中的模态框,查看模态框存在但不可见。这证实了 bug 是由我们的 CSS 代码 display: hidden 引起的。
当您在 DOM 中点击模态框时,任何相应的 CSS 类都将在 Elements 面板底部的 Styles 中显示。您可以切换一些属性,即时查看效果。
手动将类名从 modal hidden 更改为 modal block,以触发显示模态框的正确属性。
现在模态框可见了,但它显示在顶部 - 与我们希望它位于页面中央的位置不同。
要更改此内容,通过添加第二个-50%修改 transform 属性为 translate(-50%,-50%),并确保 top: 50%和 left: 50%正确设置以使模态框居中。
您可以进一步优化模态框的外观,通过直接在 Styles 中调整其 background-color,padding 或其他样
式属性,以实现期望的外观和感觉。
我在我们的模态小项目的 JavaScript 代码中引入了一个 bug,阻止了点击按钮时打开模态框。
在下面的代码中,openModal 函数被设置为删除指定类。然而,这不起作用,因为我们故意拼写错误。
打开 Chrome DevTools 并导航到 Sources 面板。在这里,找到包含模态功能的 JavaScript 文件(在我们的示例中是 pen.js)。
openModal 函数包含在屏幕上显示模态的逻辑。此函数将包含一行,其中对模态元素的类进行操作以删除“hidden”类。
点击 DevTools 中此代码行旁边的数字。一个蓝色(或有时是红色,取决于主题)图标将显示在行号旁边,表示已设置断点。一旦代码达到此行,断点将暂停 JavaScript 代码的执行。
在我们的断点位置,尝试通过单击按钮打开模态框。我们的 JavaScript 代码的执行现在在断点处暂停,这使我们可以逐行查看代码。
这是一个观察变量,函数调用,查找异常的机会,例如函数拼写错误,不正确的逻辑,或者解释模态框为什么不起作用的未捕获异常。
在我们的情况下,因为我们故意拼写类名 hidden 为 hiddn,所以模态框不起作用。在代码中修复它以使模态框再次正常工作。
在这里,我添加了一个 fetch 函数,它对实时端点(https://jsonplaceholder.typicode.com/posts/1)进行API调用。这是探索Network面板在诊断和理解与网络相关的问题方面的能力的绝佳机会。
从下面的代码中,您可以看到 openModal 函数不仅打开模态框,还对 jsonplaceholder 端点进行 API 调用以获取一些数据。
在模态项目 UI 上点击“Click me to learn a secret”按钮。尽管模态框不可见,因为 openModal 函数内包含有关 fetch 逻辑,但将进行 API 调用。
理想情况下,您在单击按钮之前应该打开 Network 面板,但您也可以反转步骤。有关 API 请求的详细信息,例如请求的方法,状态码,响应以及完成所需的时间,将在 headers,preview,response,initiator 和 timing 标签下提供。
使用 Network 面板的限制功能来模拟各种网络速度,如离线或慢 3G,以查看 API 请求在受限条件下的行为。
通过比较不同网络速度对应用性能的影响,了解优化数据加载策略对提高用户体验的重要性,特别是在较慢的连接上。
将 Chrome DevTools 纳入您的 Web 开发例程中不仅是修复错误。它是关于简化工作流程,使您的站点更具可访问性并提高其性能。
通过我们的模态窗口小项目,我们亲身体验了 DevTools 如何应对各种开发挑战,但这只是它所能做的冰山一角。
随着您继续探索其功能并熟悉其特性,您会发现它是您 Web 开发旅程中的无价伴侣 - 设计旨在使您的开发过程不仅更快,而且更具有回报。
TIP