关于F12控制台功能(调试功能介绍)

本文详细介绍Chrome开发者工具的各项功能,包括清除缓存快捷键、元素调试、控制台使用、源代码查看、网络请求分析等,帮助读者掌握前端调试技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 程序员必备Chronme清理缓存快捷键
在Chrome中,按下Ctrl + Shift + Del 快捷键,就可以打开清除浏览数据功能,选择需要清除的内容,再按下"清除浏览数据"按钮,就可以清除缓存了。

2 元素(Elements):用于查看或修改HTML元素的属性、CSS属性、监听事件、断点等。
在这里插入图片描述
可以直接点击元素进行CSS、html修改;此修改只会在本地生效;不会上传到服务器端,所以可以用来调试前端代码

3 控制台(Console):记录前端javascript对象、log信息、异常信息
在这里插入图片描述
其中 console 标签页表示控制台, 我们可以输入 js 代码, 回车执行
常用命令有
console.log 打印日志
console.count 计数器, 记录执行的次数
console.time 计时, console.timeEnd 停止计时并打印
$() 表示使用选择器获取单个元素, $$() 表示使用选择器获取元素数组
查看控制台日志:当网页的JS代码中使用了console.log()函数时,该函数输出的日志信息会在控制台中显示。日志信息一般在开发调试时启用,而当正式上线后,一般会将该函数去掉。

4源代码(Sources):查看网页的源代码HTML代码,js代码、CSS代码,可以直接修改代码进行前端调试
在这里插入图片描述
4、网络(Network)大体功能如下:
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在Timing标签中可以显示资源在整个请求生命周期过程中各部分时间花费信息,可能会涉及到如下过程的时间花费情况:

1、Queuing

排队的时间花费,可能由于该请求被渲染引擎认为是优先级比较低的资源(图片)、服务器不可用、超过浏览器的并发请求的最大连接数(Chrome的最大并发连接数为6).

2、Stalled(阻塞)

浏览器对同一个主机域名的并发连接数有限制,因此如果当前的连接数已经超过上限,那么其余请求就会被阻塞,等待新的可用连接;此外脚本也会阻塞其他组件的下载;

优化措施:

1、将资源合理分布到多台主机上,可以提高并发数,但是增加并行下载数量也会增大开销,这取决于带宽和CPU速度,过多的并行下载会降低性能;

2、脚本置于页面底部;

3、Proxy Negotiation

与代理服务器连接的时间花费。

4、DNS Lookup

执行DNS查询的时间。网页上每一个新的域名都要经过一个DNS查询。第二次访问浏览器有缓存的话,则这个时间为0。请求某域名下的资源,浏览器需要先通过DNS解析器得到该域名服务器的IP地址。在DNS查找完成之前,浏览器不能从主机名那里下载到任何东西。

优化措施:

1、利用DNS缓存(设置TTL时间);

2、利用Connection:keep-alive特性建立持久连接,可以在当前连接上进行多个请求,无需再进行域名解析;

5、Initial Connection:

建立连接的时间花费,包含了TCP握手及重试时间。

6、SSL

http是超文本传输协议,以明文方式发送内容,不提供任何方式的数据加密,如果被不法分子截取浏览器和服务器之间的传输报文,会获取其中的信息。

https 是安全套接字层超文本传输协议,就是在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

因此建立HTTPS连接的时间相当于三次握手的时间+SSL时间。

7、Request sent (发送请求)

发送HTTP请求的时间(从第一个bit到最后一个bit)

优化措施:

1、减少HTTP请求,可以使用CSS Sprites、内联图片、合并脚本和样式表等;

2、对不常变化的组件添加长久的Expires头(相当于设置久远的过期时间),在后续的页面浏览中可以避免不必要的HTTP请求;

8、Waiting (等待响应)

是最初的网络请求被发起到从服务器接收到第一个字节这段时间,它包含了TCP连接时间,发送HTTP请求时间和获得响应消息第一个字节的时间。

通常是耗费时间最长的。从发送请求到收到响应之间的空隙,会受到线路、服务器距离等因素的影响。

优化措施:

1、使用CDN,将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求,提高响应速度;

9、Content Download (下载)

获取Response响应数据的时间花费。

下载HTTP响应的时间(包含头部和响应体)

优化措施:

1、通过条件Get请求,对比If-Modified-Since和Last-Modified时间,确定是否使用缓存中的组件,服务器会返回“304 Not Modified”状态码,减小响应的大小;

2、移除重复脚本,精简和压缩代码,如借助自动化构建工具grunt、gulp等;

3、压缩响应内容,服务器端启用gzip压缩,可以减少下载时间;

性能(Performance):监控该网页的性能各种指标信息​

内存(Memory):记录页面跟随时间的内存使用情况

存储(Application):查看一些本地存储、会话存储、已索引数据库、Cookie、缓存、帧等

安全(Security):调试当前网页的安全和认证等问题

如果网页是安全的,则会显示这样一条消息:This page is secure (valid HTTPS).。

通过点击View certificate可以查看main origin的服务器证书信息。

点击左侧可以查看指定源的连接和证书详情。

如果网页是不安全的,则会显示:This page is not secure.。

该面板可以区分两种类型的不安全的页面:

如果被请求的页面通过HTTP提供服务,那么这个主源就会被标记为不安全。
如果被请求的页面是通过HTTPS获取的,但这个页面接着通过HTTP继续从其他来源检索内容,那么这个页面仍然被标记为不安全。这就是所谓的混合内容页面,混合内容页面只是部分受到保护,因为HTTP内容(非加密的内容)可以被嗅探者入侵,容易受到中间人攻击。
审计(Audits):对当前网页进行网络利用情况、网页性能方面的诊断,并给出一些优化建议

页面的URL:是前端路由, F12看见的是后端路由

链接: https://blog.csdn.net/weixin_42359436/article/details/108224120.
链接: https://www.cnblogs.com/zhuzhubaoya/p/9758648.html.

要在CEF中添加F12调用控制台窗口的功能,可以按照以下步骤进行操作: 1. 在你的CEF应用程序中,找到处理键盘事件的代码。这通常是在你的键盘事件处理函数中。 2. 在键盘事件处理函数中,检查按下的键是否为F12键。你可以使用相关的键码或键标识来判断。 3. 如果检测到按下的是F12键,你需要执行一个操作来显示控制台窗口。在CEF中,可以通过调用`CefDevToolsManager::ToggleDevTools`方法来实现。 示例代码(C++): ```cpp CefRefPtr<CefBrowser> browser; // 获取到当前的CEF浏览器实例 CefRefPtr<CefFrame> frame = browser->GetMainFrame(); CefRefPtr<CefDevToolsManager> devToolsManager = CefDevToolsManager::GetInstance(); devToolsManager->ToggleDevTools(frame); ``` 示例代码(Python): ```python browser = ... # 获取到当前的CEF浏览器实例 frame = browser.GetMainFrame() dev_tools_manager = cefpython.GetDevToolsManager() dev_tools_manager.ToggleDevTools(frame) ``` 4. 确保在你的应用程序中正确设置了CEF DevTools。这通常涉及到在初始化CEF时启用DevTools,并注册相应的消息处理函数。 示例代码(C++): ```cpp void InitializeCef() { CefSettings settings; // 其他CEF设置... settings.remote_debugging_port = 8088; // 启用远程调试端口 CefInitialize(settings, nullptr, nullptr, nullptr); CefRefPtr<CefMessageRouterBrowserSide> messageRouter = CefMessageRouterBrowserSide::Create(); // 添加其他消息处理器... CefDevToolsMessageHandler::Register(messageRouter); // 注册DevTools消息处理器 } ``` 示例代码(Python): ```python def InitializeCef(): settings = {...} # 其他CEF设置 settings.remote_debugging_port = 8088 # 启用远程调试端口 cefpython.Initialize(settings) message_router = cefpython.GetGlobalMessageRouter() # 添加其他消息处理器... cefpython.AddDevToolsMessageHandler(message_router) # 注册DevTools消息处理器 ``` 通过以上步骤,你就可以在CEF中添加F12调用控制台窗口的功能了。当用户按下F12键时,控制台窗口将会被显示出来,供开发人员进行调试和查看页面信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jsxllht

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值