【前端面试3+1】16 TCP与UDP的区别、如何清除浮动、哪些原因造成阻塞页面渲染、【相同的树】

一、TCP与UDP的区别

TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是两种常用的网络传输协议,它们有以下几点区别:

1、连接性:

  • TCP是面向连接的协议,通信双方在传输数据之前需要建立连接,数据传输完毕后需要断开连接。
  • UDP是无连接的协议,通信双方之间在传输数据时不需要建立连接,数据包之间相互独立。

2、可靠性:

  • TCP提供可靠的数据传输,它通过序列号、确认应答、重传机制等来确保数据的完整性和可靠性。
  • UDP不提供数据传输的可靠性保证,数据包可能会丢失或乱序,应用程序需要自行处理数据的丢失或重传。

3、传输效率:

  • TCP的可靠性和连接管理会带来一定的开销,因此在传输效率上通常比UDP略低
  • UDP没有连接管理和可靠性保证,传输效率较高,适用于实时性要求较高的应用场景。

4、应用场景:

  • TCP适用于需要可靠数据传输和顺序传输的应用,如文件传输、网页访问等。
  • UDP适用于实时性要求较高、数据量较小、允许数据丢失的应用,如音视频传输、在线游戏等。

二、如何清除浮动?

清除浮动是为了解决父元素包含浮动子元素时可能导致的高度塌陷或布局错乱的问题。

1、使用clearfix技巧:

        在父元素上应用 clearfix 类,可以通过以下方式实现:

.clearfix::after {content: "";display: table;clear: both;
}

2、使用overflow属性:

        在父元素上添加 overflow: hidden; 或 overflow: auto; 属性,可以触发 BFC(块级格式化上下文),从而清除浮动。

3、使用伪元素清除浮动:

        在父元素上使用伪元素清除浮动,如下所示:

.parent::after {content: "";display: table;clear: both;
}

4、使用clear属性:

        在父元素之后添加一个空元素,并为其应用 clear: both; 属性,也可以清除浮动。

5、使用父元素设置高度:

        如果知道子元素的高度,可以在父元素上设置一个固定高度,也可以清除浮动。

三、哪些原因会造成阻塞页面的渲染?

以下是一些常见的原因:

1、CSS和JavaScript资源的加载:

        当浏览器解析HTML文档时,遇到外部CSS和JavaScript资源的引用时,会停止解析并开始下载这些资源。如果这些资源加载速度较慢或者有大量资源需要下载,会导致页面渲染被阻塞。

2、JavaScript的执行:

        JavaScript的执行会阻塞页面的渲染。特别是在页面底部加载的JavaScript文件,如果JavaScript代码执行时间过长,会延迟页面的呈现。

3、CSS和JavaScript的解析:

        如果CSS和JavaScript文件较大或者包含复杂的代码,会增加解析时间,从而影响页面的加载速度

4、DOM的构建:

        当浏览器构建DOM树时,如果遇到复杂的DOM结构或者大量的DOM元素,会导致页面渲染被阻塞。

5、渲染树的构建

        浏览器在构建渲染树时会合并DOM树和CSSOM树,生成最终的渲染树。如果CSSOM树的构建时间较长,会延迟页面的显示

6、字体加载:

        如果页面中使用了自定义字体或者远程字体,浏览器需要下载并解析这些字体文件,会阻塞页面的渲染。

7、图片加载:

        如果页面中有大量的图片需要加载,或者图片文件较大,会影响页面的加载速度。

8、重排和重绘:

        当页面中的元素样式发生改变时,浏览器会进行重排(reflow)和重绘(repaint),这也会影响页面的渲染速度。

四、【算法】相同的树

1、题目:

给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。

如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     struct TreeNode *left;*     struct TreeNode *right;* };*/
bool isSameTree(struct TreeNode* p, struct TreeNode* q) {}

2、解题:

这道题可以通过递归的方式来解决。具体的解题思路如下:

  1. 首先判断两棵树是否都为空,如果是,则认为它们相同,返回true
  2. 然后判断其中一棵树为空的情况,如果有一棵树为空一棵树非空,则认为它们不同,返回false
  3. 接着比较两棵树的根节点值是否相同,如果不同,则认为它们不同,返回false
  4. 最后递归比较两棵树的左子树和右子树,如果左右子树都相同,则返回true,否则返回false
bool isSameTree(struct TreeNode* p, struct TreeNode* q) {if (p == NULL && q == NULL) {return true; // 两棵树都为空,认为相同}if (p == NULL || q == NULL) {return false; // 一棵树为空,一棵树非空,认为不同}if (p->val != q->val) {return false; // 根节点值不同,认为不同}// 递归比较左右子树return isSameTree(p->left, q->left) && isSameTree(p->right, q->right);
}

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

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

相关文章

视频拍摄知识+AIGC数据预处理

视角 参考链接:https://www.polarpro.com/blogs/polarpro/filmmaking-101-types-of-camera-shots-and-angles Low Angle Shot 低角度拍摄、horizontal Shot 平视、Dutch Angle Shot 荷兰角斜拍、High Angle Shot 高角度拍摄、Bird’s-eye / Aerial Shot 鸟瞰 / 航…

最大公约数和最小公倍数(C语言)

一、N-S流程图&#xff1b; 二、运行结果&#xff1b; 三、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>//实现最大公约数函数&#xff1b; int max(int x, int y) {//初始化变量值&#xff1b;int judge 1;//运算&#xff1b;judge x %…

【智能算法】CEC2017测试集

目录 1.背景2.CEC2017测试集3.参考文献 1.背景 IEEE 国际进化计算大会&#xff08;IEEE Congress on Evolutionary Computation&#xff0c;IEEE CEC&#xff09;是进化计算领域中规模最大、影响最重要的会议之一。为了公平评估算法的优化性能&#xff0c;该会议在优化竞赛中提…

工作必备!快速了解多微信高效管理工具

在如今社交媒体和移动即时通信的时代&#xff0c;微信已成为人们工作和生活中不可或缺的一部分。而对于那些需要同时管理多个微信账号的用户来说&#xff0c;微信管理工具则是一项绝对必备的利器。 1、多微信同时登录 通过微信管理系统&#xff0c;我们可以在同一个界面内同时…

2024.4.18

思维导图 数据库 #include <myhead.h> //添加学生信息 void insert_stu(sqlite3* sq,char* errMsg) {char text[128];int ID,age,height;char name[10];scanf("%d%s%d%d",&ID,name,&age,&height);sprintf(text,"insert into Student values …

【论文速读】| 大语言模型是边缘情况模糊测试器:通过FuzzGPT测试深度学习库

本次分享论文为&#xff1a;Large Language Models are Edge-Case Fuzzers: Testing Deep Learning Libraries via FuzzGPT 基本信息 原文作者&#xff1a;Yinlin Deng, Chunqiu Steven Xia, Chenyuan Yang, Shizhuo Dylan Zhang, Shujing Yang, Lingming Zhang 作者单位&…

数学建模--蒙特卡罗法MATLAB代码保姆式解析

1.简单介绍 2.思想的实际运用 我们利用蒙特卡罗法的思想求解圆周率π的值&#xff0c;这里求得的肯定是近似值&#xff0c;我们是通过大量的模拟实验&#xff0c;利用概率求解的&#xff0c;但是这个值和我们的精确值之间还是有一定的误差的&#xff1b; 我们的思想就是在半径为…

npm怎么迁移到pnpm

下载的vue3模板用到了pnpm&#xff0c;就安装了一下 但是安装之后使用pnpm install 就发现包全被移动到ignored文件夹下面了,还报错 PS G:\Projects\gitProeject\TS_front> pnpm installWARN  Moving commitlint/config-conventional that was installed by a different …

基于springboot+vue+Mysql的论坛管理系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

清晰讲明 BFS实现的拓扑排序

前提&#xff1a; 图&#xff1a;就是结点和边组成的数据结构 有向无环图&#xff1a;就是每一个边都有方向&#xff0c;且无法构成一个环&#xff0c;只有没有环的图才能进行拓扑排序&#xff0c;所以拓扑排序也能用来证明该图有没有环 在有向无环图中有两个概念&#xff1…

原生支付宝小程序 - 获取“dom“元素

在支付宝中是不能获取到dom元素的&#xff0c;但是我门可以借助my.createSelectorQuery来实现 Page({data:{sq:{}},onLoad(){},onShow(){this.setData({sq: my.createSelectorQuery()})} })通过axml来查看 <view>{{sq}} </view>会发现它只是一个Object&#xff0…

面试算法-177-二叉搜索树中第K小的元素

题目 给定一个二叉搜索树的根节点 root &#xff0c;和一个整数 k &#xff0c;请你设计一个算法查找其中第 k 个最小元素&#xff08;从 1 开始计数&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,1,4,null,2], k 1 输出&#xff1a;1 解 class Solution…

鸿蒙TypeScript学习第19天【命名空间】

1、TypeScript 命名空间 命名空间一个最明确的目的就是解决重名问题。 假设这样一种情况&#xff0c;当一个班上有两个名叫小明的学生时&#xff0c;为了明确区分它们&#xff0c;我们在使用名字之外&#xff0c;不得不使用一些额外的信息&#xff0c;比如他们的姓&#xff0…

低成本的云MES更合适中小企业

长期以来&#xff0c;面对激烈的竞争压力&#xff0c;我国传统的制造企业逐渐从大规模、低成本向多品种、小批量、定制化转型&#xff0c;逐步由粗放式管理向精益化管理靠拢&#xff0c;如ERP、CAD、PLM、OA等多个信息化系统已在我国制造企业中得到了较为广泛的应用&#xff0c…

python 无处不在的二分搜索

我们知道二分查找算法。二分查找是最容易正确的算法。我提出了一些我在二分搜索中收集的有趣问题。有一些关于二分搜索的请求。我请求您遵守准则&#xff1a;“我真诚地尝试解决问题并确保不存在极端情况”。阅读完每个问题后&#xff0c;最小化浏览器并尝试解决它。 …

【个人博客搭建】(8)全局异常处理

1、net 8 webapi 全局异常处理: 在 .NET 8 WebAPI 中&#xff0c;全局异常处理可以通过实现**IExceptionHandler接口或使用IAsyncExceptionFilter接口来完成**。 首先&#xff0c;关于IExceptionHandler接口&#xff0c;它是ASP.NET Core中用于全局异常处理的新抽象。这个接口有…

【C++】priority_queue(优先级队列介绍、仿函数控制大堆小堆、模拟实现)

一、优先级队列 1.1介绍 优先级队列&#xff08;Priority Queue&#xff09;是一种特殊的数据结构&#xff0c;其并不满足队列先进先出的原则&#xff0c;它结合了队列和堆的特点&#xff0c;允许我们在其中插入元素&#xff0c;并且能够保证任何时候提取出的元素都是当前队列…

不同性能压测工具对比

阿里云PTS 性能测试PTS&#xff08;Performance Testing Service&#xff09;是阿里云一款商业化的性能测试工具。支持按需发起压测任务&#xff0c;可支持百万并发、千万TPS流量发起能力&#xff0c;100%兼容JMeter。PTS支持的场景编排、API调试、流量定制、流量录制等功能&am…

【论文解读系列】从RNN/CNN到大模型全解析

论文&#xff1a;A Survey of Neural Code Intelligence: Paradigms, Advances and Beyond 地址&#xff1a;GitHub&#xff1a;https://github.com/QiushiSun/NCISurvey 文章目录 一、代码模型的发展 1.神经语言建模&#xff08;Neural Language Modeling&#xff09;时代 …

初识 React:安装和初步使用指南

文章目录 前言一、React 是什么&#xff1f;1.组件化开发2.虚拟 DOM3.单向数据流4.生态系统丰富 二、安装1.准备工作2.下载react 三、探索 React 应用总结 前言 在当今的 Web 开发领域&#xff0c;React 已经成为了一个备受推崇的技术。它的组件化、灵活性和高效性使得它成为了…