自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

常来常往,共同成长

随手小记,分享日常工作中的知识点,与诸道友共勉

  • 博客(123)
  • 收藏
  • 关注

原创 大文件上传如何做断点续传?

不管怎样简单的需求,在量级达到一定层次时,都会变得异常复杂,文件上传简单,文件变大就复杂

2024-02-12 08:00:00 5179 18

原创 Vue3跟Vue2的区别(超详细,要收藏)

Vue 新版本的理念成型于 2018 年末,当时 Vue 2 的代码库已经有两岁半了。比起通用软件的生命周期来这好像也没那么久,但在这段时期,前端世界已经今昔非比了。在我们更新(和重写)Vue 的主要版本时,主要考虑两点因素:首先是新的 JavaScript 语言特性在主流浏览器中的受支持水平;其次是当前代码库中随时间推移而逐渐暴露出来的一些设计和架构问题。

2024-01-22 10:00:00 6430 54

原创 Vue中keep-alive缓存的详解(深度理解)

keep-alive是vue中的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染DOM,keep-alive 包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们

2024-01-15 10:00:00 3408 6

原创 Vue组件之间的通信方式详细讲解(收藏此篇再无疑问)

组件是vue最强大的功能之一,vue中每一个.vue我们都可以视之为一个组件通信指的是发送者通过某种媒体以某种格式来传递信息到收信者以达到某个目的。广义上,任何信息的交通都是通信组件间通信即指组件(.vue)通过某种方式来传递信息以达到某个目的举个栗子我们在使用UI框架中的table组件,可能会往table组件中传入某些数据,这个本质就形成了组件之间的通信

2024-01-01 10:00:00 2605 6

原创 说说对WebSocket的理解?应用场景?

WebSocket,是一种网络传输协议,位于OSI模型的应用层。可在单个TCP连接上进行全双工通信,能更好的节省服务器资源和带宽并达到实时通迅

2024-04-14 08:00:00 1024

原创 说说TCP为什么需要三次握手和四次挥手?

三次握手(Three-way Handshake)其实就是指建立一个TCP连接时,需要客户端和服务器总共发送3个包主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备过程如下:上述每一次握手的作用如下:通过三次握手,就能确定双方的接收和发送能力是正常的。之后就可以正常通信了如果是两次握手,发送端可以确定自己发送的信息能对方能收到,也能确定对方发的包自己能收到,但接收端只能确定对方发的包自己能收到 无法确定自己发的包对方能收到并且两次握手的话, 客户端有可能因为

2024-04-13 08:00:00 1136

原创 说说地址栏输入 URL 敲下回车后发生了什么?

简单的分析,从输入 URL到回车后发生的行为如下:

2024-04-12 08:00:00 981

原创 说说 HTTP 常见的请求头有哪些? 作用?

HTTP头字段(HTTP header fields),是指在超文本传输协议(HTTP)的请求和响应消息中的消息头部分它们定义了一个超文本传输协议事务中的操作参数HTTP头部字段可以自己根据需要定义,因此可能在 Web服务器和浏览器上发现非标准的头字段

2024-04-11 08:00:00 631

原创 说一下 GET 和 POST 的区别?

GET和POST,两者是HTTP协议中发送请求的方法

2024-04-10 08:00:00 780

原创 说说HTTP 常见的状态码有哪些,适用场景?

HTTP状态码(英语:HTTP Status Code),用以表示网页服务器超文本传输协议响应状态的3位数字代码。它由 RFC 2616规范定义的,并得到 RFC 2518、RFC 2817、RFC 2295、RFC 2774与 RFC 4918等规范扩展。简单来讲,http状态码的作用是服务器告诉客户端当前请求响应的状态,通过状态码就能判断和分析服务器的运行状态。

2024-04-09 08:00:00 780

原创 说说 HTTP1.0/1.1/2.0 的区别?

浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接引入了持久连接,即TCP连接默认不关闭,可以被多个请求复用在同一个TCP连接里面,客户端可以同时发送多个请求虽然允许复用TCP连接,但是同一个TCP连接里面,所有的数据通信是按次序进行的,服务器只有处理完一个请求,才会接着处理下一个请求。如果前面的处理特别慢,后面就会有许多请求排队等着新增了一些请求方法新增了一些请求头和响应头采用二进制格式而非文本格式。

2024-04-08 08:00:00 1026

原创 如何理解CDN?说说实现原理?

CDN (全称 Content Delivery Network),即内容分发网络。构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN 的关键技术主要有内容存储和分发技术。简单来讲,CDN就是根据用户位置分配最近的资源

2024-04-07 20:14:01 750

原创 DNS协议 是什么?说说DNS 完整的查询过程?

DNS(Domain Names System),域名系统,是互联网一项服务,是进行域名和与之相对应的 IP 地址进行转换的服务器。简单来讲,DNS相当于一个翻译官,负责将域名翻译成ip地址。

2024-04-06 08:00:00 678

原创 如何理解TCP/IP协议?

TCP/IP,传输控制协议/网际协议,是指能够在多个不同网络间实现信息传输的协议簇

2024-04-05 08:00:00 754

原创 如何理解UDP 和 TCP? 区别? 应用场景?

UDP协议面向报文,不拆分应用层报文,只保留报文边界,一次发送一个报文,接收方去除报文首部后,原封不动将报文交给上层应用。可以想象成流水形式的,发送方TCP会将数据放入“蓄水池”(缓存区),等到可以发送的时候就发送,不能发送就等着,TCP会根据当前网络的拥塞状态来确定每个报文段的大小。TCP 是面向连接的协议,建立连接3次握手、断开连接四次挥手,UDP是面向无连接,数据传输前后不连接连接,发送端只负责将数据发送到网络,接收端从消息队列读取。多长的报文,它统统发送,一次发送一个报文。也就是说无论应用层交给。

2024-04-04 08:00:00 770

原创 如何理解OSI七层模型?

OSI (Open System Interconnect)模型全称为开放式通信系统互连参考模型,是国际标准化组织 ( ISO ) 提出的一个试图使各种计算机在世界范围内互连为网络的标准框架。OSI将计算机网络体系结构划分为七层,每一层实现各自的功能和协议,并完成与相邻层的接口通信。即每一层扮演固定的角色,互不打扰。

2024-04-03 08:00:00 1002

原创 为什么说HTTPS比HTTP安全? HTTPS是如何保证安全的?

实现完整性的手段主要是摘要算法,也就是常说的散列函数、哈希函数可以理解成一种特殊的压缩算法,它能够把任意长度的数据“压缩”成固定长度、而且独一无二的“摘要”字符串,就好像是给这段数据生成了一个数字“指纹”摘要算法保证了“数字摘要”和原文是完全等价的。所以,我们只要在原文后附上它的摘要,就能够保证数据的完整性比如,你发了条消息:“转账 1000 元”,然后再加上一个 SHA-2 的摘要。网站收到后也计算一下消息的摘要,把这两份“指纹”做个对比,如果一致,就说明消息是完整可信的,没有被修改可以看到,

2024-04-02 08:00:00 564 2

原创 什么是HTTP? HTTP 和 HTTPS 的区别?

HTTP (HyperText Transfer Protocol),即超文本运输协议,是实现网络通信的一种规范

2024-04-01 08:00:00 1310

原创 与webpack类似的工具还有哪些?区别?

模块化是一种处理复杂系统分解为更好的可管理模块的方式可以用来分割,组织和打包应用。每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体(bundle)在前端领域中,并非只有webpack这一款优秀的模块打包工具,还有其他类似的工具,例如Rollup、Parcel、snowpack,以及最近风头无两的Vite通过这些模块打包工具,能够提高我们的开发效率,减少开发成本这里没有提及gulp、grunt是因为它们只是定义为构建工具,不能类比

2024-03-31 08:00:00 702

原创 如何提高webpack的构建速度?

随着我们的项目涉及到页面越来越多,功能和业务代码也会随着越多,相应的webpack的构建时间也会越来越久。构建时间与我们日常开发效率密切相关,当我们本地开发启动devServer或者build的时候,如果时间过长,会大大降低我们的工作效率。所以,优化webpack构建速度是十分重要的环节。

2024-03-30 08:00:00 724

原创 说说如何借助webpack来优化前端性能?

随着前端的项目逐渐扩大,必然会带来的一个问题就是性能。尤其在大型复杂的项目中,前端业务可能因为一个小小的数据依赖,导致整个页面卡顿甚至奔溃。一般项目在完成后,会通过webpack进行打包,利用webpack对前端项目性能优化是一个十分重要的环节。

2024-03-29 08:00:00 587

原创 说说webpack proxy工作原理?为什么能解决跨域?

webpack proxy,即webpack提供的代理服务。基本行为就是接收客户端发送的请求后转发给其他服务器。其目的是为了便于开发者在开发模式下解决跨域问题(浏览器安全策略限制)。想要实现代理首先需要一个中间服务器,webpack中提供服务器的工具为webpack-dev-server。

2024-03-28 08:00:00 1662

原创 说说webpack的热更新是如何做到的?原理是什么?

HMR全称 Hot Module Replacement,可以理解为模块热替换,指在应用程序运行过程中,替换、添加、删除模块,而无需重新刷新整个应用。例如,我们在应用运行过程中修改了某个模块,通过自动刷新会导致整个应用的整体刷新,那页面中的状态信息都会丢失

2024-03-27 08:00:00 611

原创 说说Loader和Plugin的区别?编写Loader,Plugin的思路?

前面两节我们有提到Loader与Plugin对应的概念,先来回顾下:loader 是文件加载器,能够加载资源文件,并对这些文件进行一些处理,诸如编译、压缩等,最终一起打包到指定的文件中;plugin 赋予了 webpack 各种灵活的功能,例如打包优化、资源管理、环境变量注入等,目的是解决 loader 无法实现的其他事。

2024-03-26 08:00:00 886

原创 说说webpack中常见的Plugin?解决了什么问题?

Plugin(Plug-in)是一种计算机应用程序,它和主应用程序互相交互,以提供特定的功能。是一种遵循一定规范的应用程序接口编写出来的程序,只能运行在程序规定的系统下,因为其需要调用原纯净系统提供的函数库或者数据。

2024-03-25 08:00:00 765

原创 说说webpack中常见的Loader?解决了什么问题?

loader用于对模块的"源代码"进行转换,在import或"加载"模块时预处理文件。webpack做的事情,仅仅是分析出各种模块的依赖关系,然后形成资源列表,最终打包生成到指定的文件中。

2024-03-24 08:00:00 1351

原创 说说webpack的构建流程?

从配置的入口模块开始,分析其 AST,当遇到require等导入其它模块语句时,便将其加入到依赖的模块列表,同时对新找出的依赖模块递归分析,最终搞清所有模块的依赖关系。在用Loader 对一个模块转换完后,使用 acorn 解析转换后的内容,输出对应的抽象语法树(AST),以方便 Webpack后面对代码的分析。在运行过程中会广播事件,插件只需要监听它所关心的事件,就能加入到这条webpack机制中,去改变webpack的运作,使得整个系统扩展性良好。如果您有任何问题或建议,请随时在评论区留言联系。

2024-03-23 08:00:00 823

原创 说说你对webpack的理解?解决了什么问题?

Webpack 最初的目标是实现前端项目的模块化,旨在更高效地管理和维护项目中的每一个资源

2024-03-22 08:00:00 626

原创 说说对Css预编语言的理解?有哪些区别?

Css 作为一门标记性语言,语法相对简单,对使用者的要求较低,但同时也带来一些问题需要书写大量看似没有逻辑的代码,不方便维护及扩展,不利于复用,尤其对于非前端开发工程师来讲,往往会因为缺少 Css 编写经验而很难写出组织良好且易于维护的 Css 代码

2024-03-21 08:00:00 1840

原创 让Chrome支持小于12px 的文字方式有哪些?区别?

Chrome 中文版浏览器会默认设定页面的最小字号是12px,英文版没有限制.原由 Chrome 团队认为汉字小于12px就会增加识别难度

2024-03-20 08:00:00 844

原创 CSS如何画一个三角形?原理是什么?

在前端开发的时候,我们有时候会需要用到一个三角形的形状,比如地址选择或者播放器里面播放按钮。通常情况下,我们会使用图片或者svg去完成三角形效果图,但如果单纯使用css如何完成一个三角形呢?实现过程似乎也并不困难,通过边框就可完成......

2024-03-19 08:00:00 764

原创 如何实现单行/多行文本溢出的省略样式?

在日常开发展示页面,如果一段文本的数量过长,受制于元素宽度的因素,有可能不能完全显示,为了提高用户的使用体验,这个时候就需要我们把溢出的文本显示成省略号

2024-03-18 08:00:00 1818

原创 如果要做优化,CSS提高性能的方法有哪些?

每一个网页都离不开css,但是很多人又认为,css主要是用来完成页面布局的,像一些细节或者优化,就不需要怎么考虑,实际上这种想法是不正确的作为页面渲染和内容展现的重要环节,css影响着用户对整个网站的第一体验因此,在整个产品研发过程中,css性能优化同样需要贯穿全程

2024-03-17 08:00:00 1590

原创 什么是响应式设计?响应式设计的基本原理是什么?如何做?

响应式网站设计(Responsive Web design)是一种网络页面设计布局,页面的设计与开发应当根据用户行为以及设备环境(系统平台、屏幕尺寸、屏幕定向等)进行相应的响应和调整描述响应式界面最著名的一句话就是“Content is like water”大白话便是“如果将屏幕看作容器,那么内容就像水一样”

2024-03-16 08:00:00 1719

原创 回流和重绘详解(什么场景下会触发)

在HTML中,每个元素都可以理解成一个盒子,在浏览器解析过程中,会涉及到回流与重绘:回流:布局引擎会根据各种样式计算每个盒子在页面上的大小与位置重绘:当计算好盒模型的位置、大小及其他属性后,浏览器根据每个盒子特性进行绘制

2024-03-15 08:00:00 1761

原创 CSS3动画有哪些?

CSS动画(CSS Animations)是为层叠样式表建议的允许可扩展标记语言(XML)元素使用CSS的动画的模块即指元素从一种样式逐渐过渡为另一种样式的过程常见的动画效果有很多,如平移、旋转、缩放等等,复杂动画则是多个简单动画的组合

2024-03-14 08:00:00 852

原创 CSS3新增了哪些新特性?

css,即层叠样式表(Cascading Style Sheets)的简称,是一种标记语言,由浏览器解释执行用来使页面变得更美观css3是css的最新标准,是向后兼容的,CSS1/2的特性在CSS3里都是可以使用的而CSS3也增加了很多新特性,为开发带来了更佳的开发体验

2024-03-13 08:00:00 1708

原创 如何使用css完成视差滚动效果?

视差滚动(Parallax Scrolling)是指多层背景以不同的速度移动,形成立体的运动效果,带来非常出色的视觉体验

2024-03-12 14:48:01 930

原创 CSS中grid网格布局详解

Grid 布局即网格布局,是一个二维的布局方式,由纵横相交的两组网格线形成的框架性布局结构,能够同时处理行与列,擅长将一个页面划分为几个主要区域,以及定义这些区域的大小、位置、层次等关系。

2024-03-12 08:00:00 910

原创 如何实现两栏布局,右侧自适应?三栏布局中间自适应呢?

在日常布局中,无论是两栏布局还是三栏布局,使用的频率都非常高

2024-03-11 08:00:00 812

空空如也

空空如也

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

TA关注的人

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