自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 TCP协议三次握手四次挥手

特性三次握手(连接建立)四次挥手(连接断开)步骤数34目的建立一个可靠的 TCP 连接优雅地关闭一个可靠的 TCP 连接涉及的标志位SYN, ACKFIN, ACK过程1. 客户端发送 SYN,2. 服务器回应 SYN + ACK,3. 客户端回应 ACK1. 客户端发送 FIN,2. 服务器回应 ACK,3. 服务器发送 FIN,4. 客户端回应 ACK连接状态完成连接的建立完成连接的断开三次握手用于建立连接,确保双方都准备好通信。四次挥手。

2025-02-27 16:47:35 835

原创 Websocket和tcp协议的关联

特性TCPWebSocket协议层传输层 (第四层)应用层 (基于 TCP)连接方式三次握手建立连接HTTP 协议握手,升级为 WebSocket通信模式字节流通信消息驱动,双向全双工适用场景可靠的数据传输,文件传输等实时数据传输,如聊天、在线游戏等性能和延迟连接建立和关闭需要时间连接建立后低延迟,持久连接数据格式无数据格式规定支持文本和二进制数据协议关闭四次挥手关闭应用层通过close()关闭安全性可通过 SSL/TLS 加密支持wss://协议,基于 TLS 加密。

2025-02-27 16:13:56 679

原创 Vue的diff算法的自己一些总结

Vue 的 diff 算法是为了在组件状态或数据发生变化时,通过虚拟 DOM 的对比,尽可能地减少对实际 DOM 的操作,从而提高性能。其核心思想是局部更新和同层对比,并且通过key优化在列表渲染中的性能。在 Vue 3 中,diff 算法和响应式系统得到了进一步优化,尤其是在性能和响应速度方面。

2025-02-27 10:44:29 794

原创 Vue2 和 Vue3 的区别总结

特性Vue 2Vue 3性能优化较差的性能,依赖使用Proxy提升了性能响应式系统使用Proxy,支持更高效的响应式API主要使用选项 API新增组合式 API(setup生命周期钩子mounted等等TypeScript 支持支持较差,需额外配置内建支持,类型推导更强包体积相对较大更小,支持 Tree ShakingTeleport 和 Suspense无新增,支持异步组件和跨组件渲染Fragment 支持需要单个根元素支持多个根元素(Fragment)

2025-02-27 10:10:33 987

原创 JS中判断数组的方法

是最标准、最推荐的方法。:适用于大多数情况,但在跨域时可能会出现问题。:可以用来在兼容性较差的环境下判断数组。和typeof:不推荐用于判断数组,存在一些特殊情况。推荐使用作为判断数组的方法,因其简洁且符合标准。

2025-02-26 21:31:26 317

原创 解决同事关于下载流的问题,浏览器响应头能看到Content-Disposition,无法获取流的fileName

response.headers.get('content-disposition') 报错获取不到。

2025-02-26 15:11:25 160

原创 Vue双向绑定原理

Vue 2.x的双向绑定通过对data进行劫持,结合观察者模式来实现数据与视图的同步。Vue 3.x通过Proxy代理整个对象,使得数据劫持和绑定更为高效和灵活。v-model是 Vue 实现双向绑定的核心指令,自动处理数据和视图的同步。Vue 的双向绑定机制使得开发者能够更加专注于业务逻辑,而无需过多关注数据和视图之间的同步问题。

2025-02-26 09:42:34 665

原创 关于微前端的经验分享

是一种架构模式,将传统的前端单体应用拆分成多个较小、独立的前端应用,并通过一些机制将它们组合到一起。每个小的前端应用负责一个特定的业务领域或模块,可以独立开发、部署和维护。微前端的思想类似于后端的微服务(Microservices),目的是解耦、提升可维护性、增强团队开发的灵活性和敏捷性。

2025-02-24 16:48:37 817

原创 继公司同事抛出的vue项目首屏加载慢给他提供的解决思路步骤分享出来

代码拆分与懒加载,避免一次性加载所有资源。使用SSR(服务器端渲染)来提前渲染内容。使用v-show替代v-if来减少不必要的渲染。优化首屏请求,包括图片懒加载和资源压缩。减少 JavaScript 执行时间,使用 Web Workers。启用浏览器缓存和预加载关键资源。通过这些优化,可以有效提升 Vue 应用的首屏渲染速度,改善用户体验。

2025-02-24 10:24:53 944

原创 BroadcastChannel API 实现跨浏览器标签通信(常用于广播)

是一个简单有效的跨标签页、跨窗口通信工具,适用于同源的多个浏览器上下文之间进行即时数据共享或事件通知。通过这个 API,你可以实现更加流畅和实时的用户体验,尤其是在复杂的 Web 应用中。

2025-02-23 01:00:00 392

原创 进程和线程的关系及概念

进程是计算机中正在执行的程序的实例。它是操作系统资源分配和调度的基本单位。每个进程都有自己的地址空间、代码、数据和系统资源(如文件描述符和设备)。每个进程可以包含多个线程。

2025-02-21 17:35:22 820

原创 什么是闭包,并且解决了什么问题,又造成了什么问题

闭包是指函数与其引用的外部变量(或参数)共同组成的一个"封闭"的环境。在 JavaScript 中,闭包是一个非常重要的概念,它允许函数访问其外部作用域的变量,即使这些变量已经超出了它们的原作用域。具体来说,闭包是在一个函数内部定义的另一个函数,内部函数可以访问外部函数的变量,而这些外部变量不会在外部函数执行完之后被销毁。闭包解决了数据封装和私有数据保护的问题,提供了强大的函数式编程能力,但也带来了一些潜在的性能和维护问题,如内存泄漏、调试困难和意外的数据共享。

2025-02-21 17:33:44 857

原创 继面试百度以后遇到的一个问题npm和pnpm的区别

pnpm和npm都是 JavaScript 的包管理工具,它们的功能大体相同,都是用来管理和安装依赖项(如 Node.js 的包和库),但是它们的实现和行为存在一些重要的区别,特别是在效率和磁盘空间管理方面。

2025-02-21 17:24:25 779

原创 关于解决vue3嵌套路由跳转后页面路由跳转正常但不走生命周期(白屏)强制刷新后正常

3 .判断router要跳转的路由组件是否 template标签中 根是否包含多个子元素(如有则将其用一个大标签包裹),其次 tempate根下紧接着是否有代码注释,如有则放到子标签中或删除。:(这个键值每次路由变化时都更新,强制Vue销毁旧的组件实例并创建一个新的实例。组件就会进行完整的重新挂载过程,其内部的数据绑定也会随之更新,从而达到刷新页面的效果)问题:vue3页面跳转成功,且页面路由层级嵌套,router.push跳转后页面白屏,刷新后正常。三步走战略走完,基本解决99的问题!

2025-02-21 14:21:52 189

原创 echatrs 3dPie 图 记录

【代码】echatrs 3dPie 图 记录。

2024-03-19 14:59:36 122 1

原创 【git撤销操作记录】

先上图,用的是菜鸟教程的图。​ 2. 另一种情况是删除错了,这时候只要使用git checkout -- 即可把误删的文件恢复到最新版本,最后一次提交后修改的内容会丢失。当对工作区修改(或新增)的文件执行git add命令时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中。因为已经产生了新的提交,所以撤销修改可以使用git reset --hard HEAD^来回退到上一个版本,从而达到撤销修改的效果。

2024-03-12 17:05:23 384 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除