项目调试的困境

程序开发总会遇到各种各样的问题,为什么实际结果和预期结果不一致?

这个时候如果能深入程序内部抽丝剥茧去一探究竟再好不过!

而chrome工具是前端开发的杀手锏,经常听到的一句话是:

出问题了?F12看看...

前端调试的手法一般就两种:

  1. 服务端(添加调试代码)
  2. 客户端(开发者工具)

    对于简单的页面来说,都能很快的找到问题所在

    面对大型的网站项目(react、vue),页面成千上万的组合嵌套。

    很多页面很多相似的按钮,当我们接受一份项目代码,如何快速的定位bug所在页面?

    如果从项目结构上层层递进,不仅项目时间不允许,而且容易陷入代码的海洋!

    如果从页面断点入手,现在的前后端分离项目,代码经过编译,面对一串编译压缩后的字串,如同天书!

    怎么办?客户和领导就在身后,问题解决完才能下班?怎么能早点回家吃口热饭?

chrome调试工具常用功能介绍

一、Elements(元素)

  • Styles(样式)

  • 说明:选中元素的自身样式、继承样式等,可以手动修改进行调试
  • 场景:手动修改选中元素样式、选中元素添加断点调试

实战1.1 修改元素样式

实战1.2 排查样式来源

实战1.3 查看元素事件

二、Console(控制台)

  • 说明:进行简单的变量输出调试、服务端添加输出信息等
  • 场景:debug过程种的变量输出查看、服务端调试信息输出

三、Source

  • 说明:网站的源代码,包含html、css、js、debug
  • 场景:源码断点调试、dom断点、事件断点

实战3.1 添加代码断点

断点添加方式

  • Elements选中元素,右键添加dom事件
  • debug面板,添加鼠标、键盘等事件(见下图)

实战3.2 断点调试

技巧1:添加鼠标、键盘事件后,调用堆栈首先看到的框架源码,怎么快速进入自己的源码?

  • 忽略框架代码,这样就可以进到自己编写的事件处理方法里边

技巧2:大型项目,如何快速拦截包含某种关键字的api,以快速定位代码位置?

  • 在XHR/fetch Breakpoint里添加/api/test关键字匹配串,这样就会拦截所有包含该关键字的api请求

实战3.3 tooltip鼠标移开就没了,如何调试?

四、Network

  • 说明:网站发起的所有远程请求信息详情
  • 场景:请求信息详情(header、param、body等信息)

技巧1:大型项目,某一个请求报错,如何快速定位请求的源码js位置?

  • 查看initiator面板的请求堆栈信息,找到对应的源码发起位置

五、Application

  • 说明:cookie、session、localStorge等存储数据的位置
  • 场景:查看cookie的失效时间、编辑localStorge存储的键值对

其它的页签不常用,在本文不做介绍。

chrome工具调试的更多相关文章

  1. 使用Chrome开发者工具调试Android端内网页(微信,QQ,UC,App内嵌页等)

    使用Chrome开发者工具调试Android端内网页(微信,QQ,UC,App内嵌页等) 前言 移动端页面调试一直是好多朋友头疼的问题,iOS 由于其封闭的特性和整体较高的性能,整体适配相对好做,调试 ...

  2. WebView 与PC机Chrome配合调试

    参考自http://www.cnblogs.com/terrylin/p/4606277.html 移动端WebView开发调试:Chrome远程调试 Chrome DevTools调试移动设备Bro ...

  3. chrome断点调试

    chrome断点调试 在编写JavaScript代码时,如果出现了bug,就要不断的去找错误,如果console控制台中提示还好说,可是没有提示恐怕就要费一番周折了.但是有了chrome这个浏览器,我 ...

  4. 在 Chrome 中调试 Android 浏览器

    最近需要使用 Chrome Developer Tools 调试 Android 浏览器,但是官方指南并不是很好使,经过一番折腾,终于调试成功了,在此把经验分享给需要的朋友. Chrome Devel ...

  5. Google Chrome浏览器调试入门————转载只为自己查看方便

    Google Chrome浏览器调试 作为Web开发人员,我为什么喜欢Google Chrome浏览器 [原文地址:http://www.cnblogs.com/QLeelulu/archive/20 ...

  6. Chrome 实用调试技巧

    Chrome 实用调试技巧 2016-07-23 如今Chrome浏览器无疑是最受前端青睐的工具,原因除了界面简洁.大量的应用插件,良好的代码规范支持.强大的V8解释器之外,还因为Chrome开发者工 ...

  7. 使用 桌面的 chrome 远程调试 Android 的页面

    手机浏览器是没有开发者工具的,所以调试手机网页是非常麻烦.使用 chrome 的远程调试功能可以像调试桌面端那样调试手机页面. 准备 手机端:chrome for Android, 安装谷歌浏览器 桌 ...

  8. 前端教程&开发模块化/规范化/工程化/优化&工具/调试&值得关注的博客/Git&面试-资源汇总

    内容精简 资源这么多,多看看多学习再总结肯定是好的.多读读就算看重了不算浪费时间,毕竟一千个读者就有一千个林黛玉,还有温故而知新,说不定多读一些内容,就发现惊喜了呢.不过,在此也精简一些内容,就1~2 ...

  9. Chrome - JavaScript调试技巧总结(浏览器调试JS)

    Chrome 是 Google 出品的一款非常优秀的浏览器,其内置了开发者工具(Windows 系统中按下 F12 即可开启),可以让我们方便地对 JavaScript 代码进行调试. 为方便大家学习 ...

随机推荐

  1. .NET 纯原生实现 Cron 定时任务执行,未依赖第三方组件

    常用的定时任务组件有 Quartz.Net 和 Hangfire 两种,这两种是使用人数比较多的定时任务组件,个人以前也是使用的 Hangfire ,慢慢的发现自己想要的其实只是一个能够根据 Cron ...

  2. JZM 的套题(暴力,DP)

    J Z M \rm JZM JZM 即将奔赴 N O I \rm NOI NOI 考场,为了让同学们赶上自己的千分之一水平,刻意出了两道水题给同学们练练. 1.曾经的代码 J Z M \rm JZM ...

  3. C# 使用if(DEBUG)调试 失效问题

    在调试winform程序的时候,经常会切换debug和release模式.有些时候在debug模式下不想用的东西就会使用 #if(!DEBUG) #endif 但是这次在新项目的时候,使用这个语句,失 ...

  4. Oracle 服务器迁移的一些经验

    前言 通过此文章来分享一下 Oracle 服务器迁移过程中的一些经验,希望对大家有些许帮助. 本文旨在帮助更多的同学,会提及一些基本命令或技巧,但不赘述,后续有机会再进一步分享各个细节. 背景 之前因 ...

  5. Typora多线程批量上传图片,永久免费25G图床

    为了满足日常需求,就写了一个自动上传图片到图床的脚本 运行该程序可以做到自动完成图片上传,并自动替换为网络链接,支持多图同时上传,采用了多线程,上传速度提升很明显. 以Window系统为例,操作步骤: ...

  6. Mysql之基础知识笔记

    Mysql数据库基础知识个人笔记 连接本地数据库: mysql -h localhost -u root -p 回车输入数据库密码 数据库的基础操作: 查看当前所有的数据库:show database ...

  7. 变废为宝: 使用废旧手机实现实时监控方案(RTSP/RTMP方案)

    随着手机淘汰的速度越来越快,大多数手机功能性能很强劲就不再使用了,以大牛直播SDK现有方案为例,本文探讨下,如何用废旧手机实现实时监控方案(把手机当摄像头做监控之用): 本方案需要准备一个手机作为采集 ...

  8. 004-GoingDeeperConvolutions2014(googLeNet)

    Going Deeper with Convolutions #paper 1. paper-info 1.1 Metadata Author:: [[Christian Szegedy]], [[W ...

  9. Python数据科学手册-Numpy数组的计算,通用函数

    Python的默认实现(CPython)处理某些操作非常慢,因为动态性和解释性, CPython 在每次循环必须左数据类型的检查和函数的调度..在编译是进行这样的操作.就会加快执行速度. 通用函数介绍 ...

  10. 路径参数和数值校验: Path_Parameters_and_Numeric_Validations

    官方文档地址: https://fastapi.tiangolo.com/zh/tutorial/path-params-numeric-validations/ # -*- coding: UTF- ...