自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 输入 URL 回车后发生了什么?

检查缓存、先解析URL、然后DNS域名解析、再发起HTTP请求建立TCP连接、服务端响应返回页面资源进行渲染、然后断开TCP连接”

2023-12-14 15:13:35 392 1

原创 async

上面的例子中,await 会阻塞下面的代码(即加入微任务队列),先执行 async外面的同步代码,同步代码执行完,再回到 async 函数中,再执行之前阻塞的代码。注:上面代码中,await 命令的参数是数值 123,这时等同于 return 123。所以上述输出结果为:1,fn2,3,2。对象,返回该对象的结果。就是用来声明一个异步方法,而。对象,下面两种方法是等效的。对象,就直接返回对应的值。是用来等待异步方法执行。

2023-12-13 13:49:36 438

原创 TCP、UDP 和 HTTP 的区别

面向连接、传输可靠(保证数据正确性)、有序(保证数据顺序)、传输⼤量数据(流模式)、速度慢、对系统资源的要求多,程序结构较复杂,每⼀条 TCP。:(类似发短信) 面向非连接 、传输不可靠(可能丢包)、无序、传输少量数据(数据报模式)、速度 快,对系统资源的要求少,程序结构较简单 , UDP。服务器响应⼀个状态行,包含消息的协议版本、⼀个成功和失败码以及相关的MIME 式样的消息,虽然 HTTP。⽀持⼀对⼀,⼀对多,多对⼀和多对多的交互通信,UDP。应⽤层、传输层、⽹络层、数据链路层。

2023-12-05 15:13:57 413

原创 async的用法

async就是generation和promise的语法糖,async就是将generation的*换成async,将yiled换成await,函数前必须加一个async,异步操作方法前加一个await关键字,意思就是等一下,执行完了再继续走。在catch子句中,我们再次尝试打印错误消息,如果再次失败,会再次抛出并捕获错误。注意:await只能在async函数中运行,否则会报错,如果promise返回的是一个错误的结果,如果没有做异常处理就会报错,所以要用try......catch捕获异常就可以。

2023-12-05 15:07:00 553

原创 状态管理工具 -- Pinia

Pinia是vue生态里Vuex的替代者,一个全新的vue状态管理库。在Vue3成为正式版以后,尤雨溪强势推荐的项目就是Pinia。那先来看看Pinia比Vuex好的地方,也就是Pinia的五大优势。1.可以对Vue2和Vue3做到很好的支持,也就是老项目也可以使用Pinia。2.抛弃了Mutations的操作,只有state、getters和actions.极大的简化了状态管理库的使用,让代码编写更加容易直观。3.不需要嵌套模块,符合Vue3的Composition api ,让代码更加扁平化。

2023-12-05 13:27:16 1052

原创 什么是防抖和节流

在实际开发中,我们可以根据具体的需求和场景选择合适的优化策略,并结合性能测试和用户反馈进行调优,以达到更好的效果。防抖(debounce)指的是在事件持续触发期间,只有等待事件停止触发一段时间后,才会执行事件函数。也就是说,在单位时间内只能触发一次函数,即使在这个单位时间内多次触发函数,也只有一次生效。这个函数接收两个参数,一个是你想要节流的函数,另一个是节流的时间间隔(以毫秒为单位)。在这个函数中,我们使用。这个函数接收两个参数,一个是你想要防抖的函数,另一个是等待的时间(以毫秒为单位)。

2023-12-03 17:22:05 353 1

原创 前端性能优化

在比较长的网页或应用中, 如果图片很多,所有的图片都被加载出来,而用户只能看到可视窗口的那一部分图片数据,这样就浪费了性能。浏览器针对页面的回流与重绘,进行了自身的优化——渲染队列浏览器会将所有的回流、重绘的操作放在一个队列中,当队列中的操作到了一定的数量或者到了一定的时间间隔,浏览器就会对队列进行批处理。根据这个原理,我们用 HTML5 的 data-xxx 属性来储存图片的路径,在需要加载图片的时候,将 data-xxx 中图片的路径赋值给 src,这样就实现了图片的按需加载,即懒加载。

2023-12-03 17:14:37 979 1

原创 Get Post 的区别

对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。这个也是最不好分析的,原则上post肯定要比get安全,毕竟传输参数时url不可见,但也挡不住部分人闲的没事在那抓包玩。

2023-12-02 20:10:15 371

原创 ES6---promise用法

Promise对象有三种状态,他们分别是:1.pending: 等待中,或者进行中,表示还没有得到结果2.resolved(Fulfilled): 已经完成,表示得到了我们想要的结果,可以继续往下执行3.rejected: 也表示得到结果,但是由于结果并非我们所愿,因此拒绝执行这三种状态不受外界影响,而且状态只能从pending改变为resolved或者rejected,并且不可逆。

2023-11-09 14:38:50 84 1

原创 为什么要定义key值

key值的主要作用是给元素添加一个唯一标识符,用来提高vue渲染性能,当data变化时,vue使用diff算法来对比新旧虚拟DOM。当key值相同时,考虑复用元素;key值不同时,则强制更新元素。一般通过给key值设置为id,保证vue在更新数据时最大限度的复用相同key值的元素。

2023-10-09 22:28:08 91

原创 什么是DOM,虚拟DOM

DOM是一种文档对象模型,同时也是用于html编程的接口,通过DOM来操作页面中的元素。这个入口,连同对HTML元素进行添加、移动、改变或移除的方法和属性,都是通过文档对象模型来获得的。实际上它只是一层对真实DOM的抽象,以JavaScript 对象 (VNode 节点) 作为基础的树,用对象的属性来描述节点,最终可以通过一系列操作使这棵树映射到真实环境上。创建虚拟DOM就是为了更好将虚拟的节点渲染到页面视图中,所以虚拟DOM对象的节点与真实DOM的属性一一照应。比如添加、移除、改变或重排页面上的项目。

2023-10-09 22:12:56 62

原创 vue获取token(设置token,清除token)实现登录方式

实现了本地数据存储只是用来延长token存在的时间其他的一切操作都是用vuex内的state.user内的数据来进行。3、前端收到后端传给的token值,将token存储在本地 有3种方法我们选用 sessionStorage。2 存取麻烦,在存储对象数组类型的时候要用JSON转换为JSON类型的字符串。2、后端收到请求,验证用户名和密码,返回给前端一个token值。导出了存储数据,获取数据,和删除数据的函数,数据的转换在这里进行。缺点: 数据存储的有效时间短,刷新页面数据消失。在min.js全局引入。

2023-10-09 21:42:51 2702

原创 ES6语法新特性

在函数调用或数组和对象字面量中,使用...语法可以将数组或对象展开成独立的元素,或将多个元素合并成数组或对象。10. 模块化导入和导出:ES6中的模块化语法可以更好地组织和管理代码,提供了import和export关键字,以及export default关键字来导入和导出模块。在ES6中,可以使用解构赋值语法快速获取数组或对象中的元素,简化了代码编写和数据交换。6. 模板字符串:模板字符串是一种更方便的字符串拼接方式,使用反引号(`)定义字符串,并可以在其中插入变量和表达式,提高了代码的可读性和可维护性。

2023-10-09 20:57:08 75 1

空空如也

空空如也

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

TA关注的人

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