前端调试合集(包含移动端/内嵌h5)

news2024/9/23 23:25:40

代码内使用方法

alert/console

  • alert和console.log作为JS最基本的调试能力,提供了简易版的断点 (只能断一下) 和输出 (只能输出字符串) 能力,可以在代码运行到预期的位置输出预期的log,通过对不同流程下写入alert,输出变量的值来判断,当前逻辑下是否进入异常流程,输出变量是否符合预期。
  • 优点:简单方便,alert断点处打印的结果真实准确。
  • 缺点:alert会阻断代码执行,console打印的Object只有最终结果。功能简单,只能用于一些简单场景
alert('打印异常流程信息')alert('接口返回值' + JSON.stringify(response));

console.log(...params);
console.info(...params);
// 还可以自定义文字颜色哟
console.log('%c' + string, 'color:green');
// 控制台日志前面有个叹号的icon

// 警告信息输出
console.warn()
// 输出代码报错日志
console.error(string | Error)

debuger

  • 在代码中使用debuger语法,浏览器执行代码时,会识别debuger为断点,在此行暂停。可以搭配控制台对代码进行调试
  • 优点:打断点方便,不会因为文件hash变更或者拼接时间戳参数导致无法断点
  • 缺点:需要写到代码内,容易因检查疏忽将调试代码带到线上,影响线上功能

浏览器控制台

  1. chrome的控制台是前端最强大的调试工具之一,很多FE同学每天在使用功能只是其中的一小部分,很多非常强大的功能值得我们继续深挖。相信它会成为你技术道路不可或缺的助力。想完整地把控制台的功能说明清楚会占用很大的篇幅,我只在这里做一些指引性的说明,感兴趣的同学建议仔细研究下。

  2. 调试控制台中我们经常使用到的功能都有element(页面内容)、console(日志输出)、network(网络请求)、source(静态文件)、Memory(内存分析)、Application(应用数据)、performance(页面分析)。以下会对最常用最好用的一些功能来做说明,使用熟悉后对工作效率相信会有很大的提升

Element

可调试Html和CSS,修改html标签属性、css样式可直接看到效果,是调试样式UI的一大利器

  • 修改html的属性和DOM节点
    在这里插入图片描述
  • 修改css样式,同步更新最终计算样式
    在这里插入图片描述
    在这里插入图片描述
  • 实时观察当前页面的所有事件监听
    在这里插入图片描述

Console

可出输出console对象下不同方法的语义信息,info(普通信息),log(日志),error(错误信息),warn(警告信息),可以输出代码执行时抛出的错误。同时还支持切换不同的window域和过滤功能。

Network

Network中记录这当前页面所有的请求信息,除此之前还有很多非常好用的辅助功能

  • Preserece log:留存该页签下所有的请求信息,页面刷新上个页面的信息不会消失,方便跟踪跨页面请求的问题

  • Disable cache:get请求不缓存,开发中代码热更新,页面刷新后读取的一直是最新的文件

  • No throtting:可以限制浏览器下行网络请求速度,方便开发是模拟弱网情况。

在这里插入图片描述

  • 导入导出请求抓包。浏览器抓包,不借助代理工具,控制台直接加载分析抓包信息。也可以使用代理工具Proxyman来加载浏览器导出的抓包文件。

此外还有开启(关闭)请求监听,清除、过滤、搜索当前信息等等。这些基本覆盖了我们日常中的需求。

Sources

sources包含当前页面下加载的所有静态资源文件,并根据域名分类。开发者可以在这里直接查看文件内容,在文件代码中加临时断点,并监听变量的值变化和调用栈。结合Search功能可以关键字搜索source内所有文件,可以快速定位要打点的位置。

Memory

Memory可以对当前页面的内存使用情况进行记录,用途开发者分析页面内存泄漏问题。

  • Heap snapshot => 堆快照
    记录当前这个时间点的内存使用情况,在不同时间段进行快照,可以对比分析具体内存泄漏的位置,方便开发者快速定位需要优化的地方

  • Allocation instrumentation on timeline => 分时段的内存占用
    记录一段时间内,内存的使用情况,在哪个时间点增加了变量占用的内存。

记录开始和结束时,需要手动点击左上角小圆点开启和停止
在这里插入图片描述

  • Allocation sampling => 分配抽样

Application

Application中包含页面临时和永久性的数据,比如Storage、Cookie、IndexedDB等等,并且支持修改。此处不再赘述。

Performance

Performance 用于分析页面加载和运行时性能,协助开发者寻找项目中可优化的功能点,功能强大。

  • 使用时先点击小圆点开启监听,然后再到页面中进行具体的交互操作(如加载页面、或执行某个动画)。
    在这里插入图片描述

为了方便大家知晓Performance具体可用于哪些场景,下面我列举几种常见的场景。

  • 首屏加载时长。
    根据记录可以看出页面首次加载中页面每个资源请求、渲染等步骤的占时情况。
    在这里插入图片描述
  • 动画优化
    根据动画执行时计算函数的执行时间,CPU和FPS的波动 来分析具体哪一出的计算复杂导致的拖慢的渲染等等。
    在这里插入图片描述

移动设备PC插线调试

安卓设备PC调试(chrome://inspect)

  1. 打开手机的开发者选项 ---- USB调试
  • ① 找到手机的版本号位置,连续快速点击后,系统会提示打开开发者选项
    在这里插入图片描述

  • ② 在开发者选项中打开USB调试,
    在这里插入图片描述

  1. 连接电脑,调试前准备
  • ① chrome浏览器中访问 chrome://inspect

温馨提示_远程调试需要提前打开科学上网哟

  • ② 手机数据线连接电脑,允许USB调试

再次提示_手机调试需要浏览器开启debug模式,客户端软件内嵌h5可以找客户端的同学打debug包
在这里插入图片描述
3. 打开需要调试的页面,在chrome中找到对应的页面打开(打开调试窗口需要科学上网)

  • ① 如果窗口中没有出现手机对应的页面,说明您打开h5页面的APP不支持调试

  • ② 点击inspect打开窗口

  • ③ 窗口内控制台与chrome中基本一致(控制台功能受调试设备安卓版本影响,安卓4、5的设备可能控制台功能不全)
    在这里插入图片描述
    在这里插入图片描述

  1. 接下来调试的方式就和chrome的控制台一样啦,此处不再赘述

IOS设备Mac端safari调试

  1. 打开safari浏览器 —> 偏好设置
  • 高级选项中勾选 “ 显示开发菜单 ”
    在这里插入图片描述
  1. IOS客户端 —> 设置 —> safari浏览器 —> 高级 ----> 勾选javascript 和web检查器

  2. 移动端safari浏览器打开需要调试的页面,使用数据线连接Mac端,并信任设备

  3. 打开Mac端safari,在开发选项找到移动端需要调试的页面,即可调起浏览器的控制台进行调试啦
    在这里插入图片描述

vconsole

移动端调试的时候,如果需要查看自己打印的日志和请求返回,在不借助电脑调试的情况下,就可以借助vconsole插件来完成。

vconsole是在移动端环境引入类似是控制台的功能,可以查看element、log、network和storage等一些基本调试信息。

npm i -D vconsole
// 简单使用 ====> 搞定
const vConsole = new VConsole();
// package.json
"scripts": {
"dev": "webpack-dev-server --config config/webpack.dev.config.js",
"build": "npm run sdk && npm run pow --mode prod",
},
// main.js
if (process.env.NODE_ENV === "development") {
const vConsole = new VConsole();
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1946384.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

普元EOS学习笔记-EOS的ide开发工具的介绍

前言 普元EOS开发包括低开和高开。 EOS低开,直接在浏览器操作即可,不需要编码。 EOS高开,需要使用EOS的ide工具,进行编码开发。 EOS的ide工具是普元在Eclipse基础上进行的扩展,添加了若干插件,专门用于…

Redis 7.x 系列【29】集群原理之自动故障转移

有道无术,术尚可求,有术无道,止于术。 本系列Redis 版本 7.2.5 源码地址:https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2. 案例演示3. 工作原理3.1 故障检测3.2 排名3.3 延迟等待3.4 投票3.5 上位 1.…

LeetCode:对称的二叉树(C语言)

1、问题概述:给一个二叉树,看是否按轴对称 2、示例 示例 1: 输入:root [1,2,2,3,4,4,3] 输出:true 示例 2: 输入:root [1,2,2,null,3,null,3] 输出:false 3、分析 (1&a…

MATLAB和Python零模型社会生物生成式结构化图

🎯要点🎯要点🎯启发式方法无标度和前馈拓扑的网络编码🎯随机遗传模型使用布线规则🎯随机遗传算法测试连接组模型🎯确定性地生成分支树和分层网络,同质偏好规则的联系🎯生成随机网络节…

无涯·问知财报解读,辅助更加明智的决策

财报解读就像是给公司做一次全面的体检,是理解公司内部运作机制和市场表现的一把钥匙,能够有效帮助投资者、分析师、管理层以及所有市场参与者判断一家公司的健康程度和发展潜力。 星环科技无涯问知的财经库内置了企业年报及财经类信息,并对…

GateWay网关微服务定位和理论知识

微服务架构的网关在哪里? 概念 SPring Cloud Gateway组件的核心是一系列的过滤器,通过这些过滤器可以将客户端发送的请求转发(路由)到对应的微服务。Spring Cloud Gateway是加在整个微服务最前沿的防火墙和代理器,隐藏…

linux离线安装mysql8(单机版)

文章目录 一、检查服务器是否有残留mysql资源,有的话就全删除1.1、查询mysql已安装的相关依赖:1.2、查找含有MySQL的目录 二、安装2.1、上传mysql安装包到文件夹下并解压2.2、移动及重命名2.3、mysql用户2.4、配置mysql所需的my.cnf文件2.5、给my.cnf配置…

基于单片机控制的红外热释电家庭防盗报警器硬件系统设计

【摘要】 随着社会的发展和人们安全意识的提高,传统的家庭防盗系统不能适应现代生活中多变的环境。本文设计开发的红外热释电家庭防盗报警器能改善传统防盗系统结构复杂,计算繁琐、价格昂贵、监控盲区等缺陷,主要由单片机模块、复位电路模块、…

pycharm+pytorch2.3.1安装

成功运行 Anaconda简介 Anaconda 就是可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。Anaconda包含了conda、Python在内的超过180个科学包及其依赖项。 Anaconda安装 去官网地址下载 Download Anaconda Distribution | Anaconda​www.ana…

<数据集>棉花叶片病害识别数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:5837张 标注数量(xml文件个数):5837 标注数量(txt文件个数):5837 标注类别数:4 标注类别名称:[Bacterial Blight, Curl virus, Fussarium wilt, Healthy] 序号类别名…

springboot3-web-questions-分析

系列文章目录 文章目录 目录 系列文章目录 文章目录 前言 一、问题案例 1、maven项目compile时候出现告警warn 2、java文件打包然后在命令行中运行java会找不到主类 3、程序找不到数据库驱动和配置实例 4、springboot和mybatis-plus版本不兼容导致 5、springboot项目启动的解释…

docker 续 常用命令

ubuntu里的仓库文件使用不了的解决方法: 1.进入仓库文件的目录 cd /etc/apt/sources.list.d/ 2.删除 archive开头的文件 sudo rm -rf archive* 3.重新下载仓库文件 sudo add-apt-repository "deb [archamd64] https://mirrors.ustc.edu.cn/docker-ce/lin…

学术研讨 | 基于区块链的隐私计算与数据可信流通研讨会顺利召开

近日,由国家区块链技术创新中心组织的“基于区块链的隐私计算与数据可信流通研讨会”顺利召开,会议邀请了来自全国高校和科研院所的相关领域专家,围绕基于区块链与隐私计算技术的应用需求、研究现状、发展趋势、重点研究方向与研究进展等内容…

【相机与图像】1. 相机模型的介绍:内参、外参、畸变参数

想着整理下相机模型(内容上参考 slam十四讲)、相机的内外参标定。方便自己的使用和回顾。 不过,内外参标定啥时候记录随缘 -_- 概述 【构建相机模型】 相机将三位世界中的坐标点(单位为米)映射到二维图像平面&#xff…

【LeetCode】71.简化路径

1. 题目 2. 分析 3. 代码 我写了一版很复杂的代码&#xff1a; class Solution:def simplifyPath(self, path: str) -> str:operator [] # 操作符的栈dir_name [] # 文件名的栈idx 0cur_dir_name ""while(idx < len(path)):if path[idx] /:operator.ap…

MT6775(Helio P70)处理器规格参数_MTK联发科平台方案

联发科MT6775(Helio P70)采用台积电12nm工艺制程节省功耗达 15%&#xff0c;搭载了四颗Arm Cortex-A73 2.1GHz和四颗ArmCortex-A53 2.0GHz的八核处理器。 GPU为ARM Mali-G72 MP3&#xff0c;运行时频率高达900MHz&#xff0c;相较于上一代产品HelioP60&#xff0c;效能提升了1…

搜索与下载Stable Diffusion 模型

我只是一个刚开始学习SD没多久小白&#xff0c;拿到别人的工作流想要运行时&#xff0c;很多时候还要下载对应的模型才能正常运行&#xff0c;虽然也可以通过comfyui-manager下载&#xff0c;不过有时候好像会下载失败&#xff0c;而单独下载所需模型&#xff0c;我自己试过&am…

解析西门子PLC的String和WString

西门子PLC有两种字符串类型&#xff0c;String与WString String 用于存放英文数字标点符号等ASCII字符&#xff0c;每个字符占用一个字节 WString宽字符串用于存放中文、英文、数字等Unicode字符&#xff0c;每个字符占用两个字节 之前我搞过一篇解析String的 关于使用TCP-…

SparkSql oom原因以及参数调优+数据倾斜解决方案

1、Spark历史版本对比 spark1 vs spark2 vs spark3 1、spark1引入内存计算的理念&#xff0c;解决中间结果落盘导致的效率低下。在理想状况下性能可达到MR的100倍。虽然提高了一定的计算效率&#xff0c;但也带来了大量的内存管理问题&#xff0c;典型的如内存oom问题频发。…

第124天:内网安全-代理 Sockets协议路由不出网后渗透通讯CS-MSF 控制上线

目录 思维导图 环境配置 案例一&#xff1a;网络通讯&控制上线--CS-路由添加&节点建立&协议生成&正反连接 案例二&#xff1a;网络通讯&控制上线--MSF-路由添加&节点建立&协议生成&正反连接 思维导图 环境配置 这里由于系统内存问题我只设…