热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

前端需要了解的调试技巧

众所周知,对于前端来讲,接触最多的应该就是Chrome浏览器了,其自带的调试工具无疑让前端们在修改BUG时更加得心应手。尽管很多人都用过Chrome的调试工具,但是Chrome的调

众所周知,对于前端来讲,接触最多的应该就是Chrome浏览器了,其自带的调试工具无疑让前端们在修改BUG时更加得心应手。

尽管很多人都用过Chrome的调试工具,但是Chrome的调试工具还有很多可挖掘的地方,如果把这些小技巧都掌握了,也能提高自己的开发效率。

下面就来讲下我平常使用较多的调试技巧

 


1. 重复发送请求

一般来讲,在开发一个新功能模块需要与后端联调或者说项目上线需要解决线上BUG时,我们需要反复去给后端调用同一个接口方便他们调试。

如果是单纯的点击按钮发送请求的接口还好,但是如果是需要前面填写一大堆信息才能发送请求的接口,那重复发送请求未免太繁琐了。

不过Chrome早就为我们想到了这一点。

 

如图所示,我们只需要在你想再次发送的网络请求上右键,然后选择Replay XHR”即可,Chrome就会自动为我们再次发送该请求,无需做其他的任务操作。

选中该请求然后按下R键也能达到同样的效果.

 


2. 控制台发送请求

这一点是基于上一点的补充,有时候后端不仅会让我们重复发送请求,还会要求我们修改请求的参数,这可怎么办?

不要着急。Chrome同样也想到了这一点,并且还可以让我们自由的去设计请求参数。

 

首先同样的在你需要重复发送的请求上右键,然后选择Copy---Copy as fetch,接下来我们只需要打开控制台,然后使用我们最熟悉的Ctrl + V

这里不管是body参数还是query参数都可以随我们自己的要求去随意更改,更改完成按下回车即可.

 

但是一般因为项目的封装处理,我们得到的会是一个Promise对象,所以还需要做下处理才能得到我们想要的结果。

 


3. $_

同样的对上一点的补充,我们可以看到,在需要对Promise进行处理时,后续加的链式调用未免有点臃肿了,尤其如果是我们想看每一步的具体数据时,会显得更加的麻烦。

举个例子,需求需要你对字符串转化成数组,然后再对这个数组进行处理,然后再转化回字符串,中间你想看下每一步的处理结果,那么$_可以帮助我们达到这个效果。

$_的作用就是引用上一步的操作结果,而不需要从头开始调用。

 

如图所示,使用$_就可以获得上一步的操作结果,并且可以随意的获得每一步的数据,尤其是在多链式调用时,更是能够准确获得每个步骤的结果。


4. $0

我们前端经常会在调试中去选取页面上的某一个元素来查看它的样式、属性什么的,看样式还是比较方便的,但是查看其的属性时还是没有那么快捷,需要获取到dom对象再去打印其的属性。

不过我们可以通过$0来快速打印。

 

如图所示,当我们选取了页面上的某一个元素之后,通过$0就可以拿到这个元素。并且可以直接在控制台上打印其的各种属性,比在代码内打印查看要方便很多。

 


5. 截取网页图片

以上几个都是个人平常开发中常用的调试技巧。还有一些开发中不是那么常用,但是部分情况下还是会用到的,比如截取网页图片。

可能有人会问,截图工具不是一大把吗?为什么还要用到调试工具?

那是因为,通过这种方式截图,你可以截取超过一屏的内容,网页有多长,你就能截取多长,而且还可以选中页面元素来部分截屏。

 

 

打开控制台后,我们使用Ctrl + Shift + P快捷键打开Command指令,然后选择Capture full size screenshot 即可截取全部网页,而Capture node screenshot则是截取选中区域图片。

但是要注意,如果给body设置了height:100%的话,Capture full size screenshot是无法截取网页全图的,所以截取的话需要先取消一下height:100%的样式再截取.

 

 

当然其他的调试技巧还有很多,这里就不一一细讲了,只讲我个人经常使用并且觉得确实有用的分享给大家,如果对这方面有兴趣的话可以自行查找文档查看。

 



推荐阅读
  • 如何清除Chrome浏览器地址栏的特定历史记录
    在使用Chrome浏览器时,你可能会发现地址栏保存了大量浏览记录。有时你可能希望删除某些特定的历史记录而不影响其他数据。本文将详细介绍如何单独删除地址栏中的特定记录以及批量清除所有历史记录的方法。 ... [详细]
  • 利用Selenium与ChromeDriver实现豆瓣网页全屏截图
    本文介绍了一种使用Selenium和ChromeDriver结合Python代码,轻松实现对豆瓣网站进行完整页面截图的方法。该方法不仅简单易行,而且解决了新版Selenium不再支持PhantomJS的问题。 ... [详细]
  • 本文介绍了使用不同工具和方法来查看设置了密码保护的易语言源码的方法。不仅限于特定浏览器,还提供了使用Chrome等主流浏览器的解决方案。 ... [详细]
  • 探讨了在 Spring MVC 框架下,JSP 页面使用 标签时遇到的数据无法正确显示的问题,并提供了可能的原因和解决方案。 ... [详细]
  • 本文详细探讨了JavaScript中四种获取CSS样式的不同方法:style、currentStyle、getComputedStyle和getBoundingClientRect。每种方法的适用场景及其兼容性问题,并提供了解决方案。 ... [详细]
  • AngularJS在IE7中的兼容性解决方案
    本文探讨了在较旧版本的Internet Explorer(如IE7)中使用AngularJS时遇到的问题及解决方法,包括HTML标签的正确书写方式以及如何添加对JSON的支持。 ... [详细]
  • 2015款Chromebook Pixel评测:高端Chrome OS笔记本体验
    在笔记本电脑领域,Chromebook Pixel凭借其精致的铝合金外壳、细腻的显示屏和舒适的键盘,成为了外观设计的佼佼者。然而,尽管外观出众,它是否值得购买仍需考量。 ... [详细]
  • 本文介绍如何确保浏览器驱动与浏览器版本兼容,并详细说明在成功调用浏览器后如何创建和管理Session。同时,提供了一些常用的Selenium定位元素的方法。 ... [详细]
  • 本文介绍了如何利用Selenium和Python通过执行JavaScript代码来控制网页中的滚动条,包括垂直和水平滚动条的控制,以及特定元素的聚焦技术。 ... [详细]
  • Web App vs Native App:未来的移动应用趋势
    随着移动互联网的发展,Web App和Native App之间的竞争日益激烈。对于开发者而言,选择哪一种技术路径更为明智?本文将深入探讨两种应用模式的特点及未来趋势。 ... [详细]
  • 利用CSS3和React实现数字滚动动画组件
    在前端开发中,数字滚动动画是一个常见的需求。本文将详细介绍如何使用CSS3和React构建一个数字滚动动画组件,包括组件的代码实现和样式设计。如果您对HTML版本感兴趣,欢迎留言获取。 ... [详细]
  • Vue项目中应用骨架屏实践
    在当前开发的项目中,由于登录过程涉及多次重定向,导致用户体验不佳。为了改善这一状况,本文介绍了如何使用vue-skeleton-webpack-plugin插件在Vue项目中实现骨架屏,以减少用户感受到的白屏时间。 ... [详细]
  • 如何安装Google访问辅助插件
    在许多地区,直接访问Google可能受到限制。不过,通过使用特定的工具如Google访问辅助插件,可以绕过这些限制。本文将详细介绍如何安装这一实用的浏览器插件。 ... [详细]
  • 将基于Web的互动多媒体体验引入手机和平板电脑历来面临诸多挑战,如性能瓶颈、API兼容性和HTML5音频及视频播放限制等问题。本文探讨了如何克服这些障碍,为《霍比特人:史矛革之战》打造了一个移动优先的沉浸式网络体验。 ... [详细]
  • 在开发过程中遇到前端页面显示 404 Not Found 错误时,通常意味着请求的资源无法被服务器找到。本文将探讨这一错误的具体原因及解决方法。 ... [详细]
author-avatar
用户gum5gltoo8
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有