LuckySoong
码龄7年
关注
提问 私信
  • 博客:63,431
    63,431
    总访问量
  • 61
    原创
  • 1,714,589
    排名
  • 66
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:山东省
  • 加入CSDN时间: 2018-04-18
博客简介:

Y0admin的博客

查看详细资料
个人成就
  • 获得53次点赞
  • 内容获得13次评论
  • 获得118次收藏
创作历程
  • 61篇
    2021年
成就勋章
创作活动更多

2024 博客之星年度评选报名已开启

博主的专属年度盛宴,一年仅有一次!MAC mini、大疆无人机、华为手表等精美奖品等你来拿!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

HTTP 请求流程:为什么很多站点第二次打开速度会很快

浏览器中的 HTTP 请求从发起到结束一共经历如下八个阶段:构建请求、查找缓存、准备 IP 和端口、等待 TCP 队列、建立 TCP 连接、发起 HTTP 请求、服务器处理请求、服务器返回请求和断开连接; 构建请求。浏览器构建请求行,构建好后,准备发起网络请求; 查找缓存。在真正发起请求前浏览器会查询缓存中是否有请求资源副本,有则拦截请求,返回资源副本,否则进入网络请求; 准备 IP 地址和端口。HTTP 网络请求需要和服务器建立 TCP 连接,而建立 TCP 连接需要准备..
原创
发布博客 2021.12.02 ·
1842 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

TCP 协议:如何保证页面文件能被完整送达浏览器

IP 头是 IP 数据包开头的信息,包含 IP 版本、源 IP 地址、目标 IP 地址、生存时间等信息; UDP 头中除了目的端口,还有源端口号等信息; IP 负责把数据包送达目的主机; UDP 负责把数据包送达具体应用; 对于错误的数据包,UDP 不提供重发机制,只是丢弃当前的包,不能保证数据的可靠性,但是传输速度非常块; TCP 头除了包含了目标端口和本机端口号外,还提供了用于排序的序列号,保证了数据完整地传输,它的连接可分为三个阶段:建立连接、传输..
原创
发布博客 2021.12.02 ·
1890 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Chrome 架构:仅仅打开了 1 个页面,为什么有 4 个进程

线程和进程区别:多线程可以并行处理任务,线程不能单独存在,它是由进程来启动和管理的。一个进程是一个程序的运行实例。线程和进程的关系:1、进程中任意一线程执行出错,都会导致整个进程的崩溃。2、线程之间共享进程中的数据。3、当一个进程关闭后,操作系统会回收进程所占用的内存。4、进程之间的内容相互隔离。单进程浏览器:1、不稳定。单进程中的插件、渲染线程崩溃导致整个浏览器崩溃。2、不流畅。脚本(死循环)或插件会使浏览器卡顿。3、不安全。插件和脚本可以获取到操作系统任意资源。多进程浏览器:1、解决不稳定。
原创
发布博客 2021.12.02 ·
2211 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

// 实现一个add方法,使计算结果能够满足如下预期:add(1)(2)(3) = 6;add(1, 2, 3)(4) = 10;add(1)(2)(3)(4)(5) = 15;

// 实现一个add方法,使计算结果能够满足如下预期:add(1)(2)(3) = 6;add(1, 2, 3)(4) = 10;add(1)(2)(3)(4)(5) = 15; function add() { // 第一次执行时,定义一个数组专门用来存储所有的参数 var _args = Array.prototype.slice.call(arguments); // 在内部声明一个函数,利用闭包的特性保存_args并收集所有的参数值 v
原创
发布博客 2021.11.30 ·
1029 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

[‘1‘,‘2‘,‘3‘].map(parseInt)详解

map函数map 方法 (Array) (JavaScript)对数组的每个元素调用定义的回调函数并返回包含结果的数组。array1.map(function(a,b,c){a 是数组中的每一项即‘1‘’2‘’3‘b 是数组的下标 即0 1 2c 是原数组 即 array1})如下例子var arr = ['1','2','3']; function fn(num,a,c){ console.log(num,a,c); //num a
原创
发布博客 2021.11.28 ·
1350 阅读 ·
2 点赞 ·
0 评论 ·
9 收藏

JS数据类型转换规则

1 如果只有一个值,判断这个值是真还是假,遵循只有0,NaN,'',null,undefined这五个是假的,其余的都是真 2 如果是两个值比较是否相等,遵循以下规则: ![]->false []==[]->false //val==val 两个值可能不是同一个数据类型的,如果是两个等于号比较的话,会默认的进行数据类型转换 规则: 1 对象==对象 永远不相等 2 对象==字符串 先将对象转换成字符串(调用toString的方法),然后再进行比较 []空数
原创
发布博客 2021.11.27 ·
504 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

JS中的Math方法

Math是数学函数,但又属于对象数据类型typeof Math=> ‘object’console.dir(Math)查看Math的所有函数方法。1,Math.abs()获取绝对值Math.abs(-12) = 122,Math.ceil() and Math.floor()向上取整和向下取整 console.log(Math.ceil(12.03));//13 console.log(Math.ceil(12.92));//13 console.log(Math...
原创
发布博客 2021.11.27 ·
234 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

前端优化(css,js,网络)

css CSS优化、提高性能的方法有哪些 多个css合并,尽量减少HTTP请求 将css文件放在页面最上面 移除空的css规则 避免使用CSS表达式 选择器优化嵌套,尽量避免层级过深 充分利用css继承属性,减少代码量 抽象提取公共样式,减少代码量 属性值为0时,不加单位 属性值为小于1的小数时,省略小数点前面的0 使用CSS Sprites将多张图片拼接成一张图片,通过CSS background 属
原创
发布博客 2021.11.26 ·
581 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

vue不同页面间传参的各种方式

一、使用router-link进行路由导航,传递参数=> 父组件中:使用<router-link to="/需要跳转的路由路径/需要传递的参数"></router-link>标签进行导航child是子页面路由路径,123是需要传递的参数=>子组件中:使用this.$route.params.num来接收路由参数此时,页面上渲染出路由传递过来的参数num,呈现123=>路由配置文件中:num用来为参数占位=>地址栏中...
原创
发布博客 2021.11.26 ·
5734 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

在浏览器地址栏输入url到页面显示出来,这之间发生了什么?

这之间的过程概括的来讲是以下六步:1,DNS解析2,TCP连接3,发送HTTP请求4,服务器处理请求并返回HTTP报文5,浏览器解析渲染界面6,连接结束那更加具体的说呢,是以下的步骤:输入URL后,首先找到这个URL域名服务器的ip,为了寻找这个IP,浏览器会首先查找缓存,查找缓存的顺序是 浏览器缓存=》系统缓存=》路由器缓存,如果缓存中没有,则查找系统的host文件,如果还是没有找到的话,就去DNS服务器上去请求服务;得到服务器的IP地址后,浏览器根据这个IP以及相应的
原创
发布博客 2021.11.26 ·
307 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

[] == (非)[]的为什么结果是true

==和===区别==, 两边值类型不同的时候,要先进行类型转换,再比较===,不做类型转换,类型不同的一定不等。==类型转换过程:如果类型不同,进行类型转换判断比较的是否是 null 或者是 undefined, 如果是, 返回 true .判断两者类型是否为 string 和 number, 如果是, 将字符串转换成 number判断其中一方是否为 boolean, 如果是, 将 boolean 转为 number 再进行判断判断其中一方是否为 object 且另一方为 string、.
原创
发布博客 2021.11.26 ·
349 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

浏览器缓存机制

浏览器缓存浏览器缓存分为强缓存和协商缓存。当客户端请求某个资源时,获取缓存的流程如下 先根据这个资源的一些http header判断它是否命中强缓存,如果命中,则直接从本地获取缓存资源,不会发请求到服务器; 当强缓存没有命中时,客户端会发送请求到服务器,服务器通过另一些request header验证这个资源是否命中协商缓存,称为http再验证,如果命中,服务器将请求返回,但不返回资源,而是告诉客户端直接从缓存中获取,客户端收到返回后就会从缓存中获取资源; 强缓存和协商..
原创
发布博客 2021.11.26 ·
135 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

js的下载是阻塞的吗?

如果js脚本不加defer和async属性的话,确实是阻塞的,但是如果加上defer或者async属性的话,最起码下载时,js是并行下载的,而解析代码的时候,具体情况具体分析。引用js文件格式如下:<script type="text/javascript" defer="defer" async="true/false" src="js文档地址"></script>defer="defer":该属性用来通知浏览器,这段脚本代码将不会产生任何文档内容。例如JavaScr
原创
发布博客 2021.11.26 ·
296 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

DOM树和CSSOM树的构建和渲染

页面的渲染过程当我们在浏览器里输入一个 URL 后,最终会呈现一个完整的网页。会经历以下几个步骤:1、HTML 的加载页面上输入 URL 后,会先拿到 HTML 文件。HTML是一个页面的基础,所以会在最开始的时候下载它,下载完毕后就开始对它进行解析2、其他静态资源的下载HTML 在解析的过程中,如果发现 HTML 文本里面有一些外部的资源链接,比如 CSS、JS 和图片等,会立即启用别的线程下载这些静态资源。在 head 中遇到 JS 文件时,HTML 的解析会停 下来,等 JS 文件
原创
发布博客 2021.11.26 ·
2577 阅读 ·
1 点赞 ·
0 评论 ·
12 收藏

Animation和Transition的区别

区别 transition animation 是否能自动执行 不能,需要事件触发,比如hover 能 能否重复发生 不能,除非在一次触发 能 能否包含多个状态 不能,只有开始和结束状态 能,比如从0% 到100%,任意指定过渡状态 能否暂停 不能,一次性 能,比如hover事件触发暂停 能否定义速度曲线 能 能 能否定义某个属性值过渡 能 能 ...
原创
发布博客 2021.11.26 ·
276 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

js 中的类

ES5 中定义一个类function Point(x, y) { this.x = x; this.y = y;}Point.prototype.toString = function () { return '(' + this.x + ', ' + this.y + ')';};var p = new Point(1, 2);ES6以后的语法(可以看做是ES5的语法糖)//定义类class Point { constructor(x, y) {
原创
发布博客 2021.11.23 ·
102 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Event Loop以及宏任务和微任务的理解

首先给一段例子:js 是单线程执行的,js中的任务按顺序一个一个的执行,但是一个任务耗时太长;那么后面的任务就需要等待,为了解决这种情况,将任务分为了同步任务和异步任务;而异步任务又可以分为微任务和宏任务。代码示例:console.log('script start');setTimeout(function() { console.log('setTimeout');}, 0);Promise.resolve().then(function() { console.l
原创
发布博客 2021.11.14 ·
993 阅读 ·
2 点赞 ·
4 评论 ·
2 收藏

Vue的计算属性和监听属性

 1. 计算属性computed在使用时,一定要注意,函数里面的变量都会被监听,只要里面的某一个值变动,便会将整个函数执行一遍。 而 watch 只是监听某一个值,若是监听的值里面也有很多变量,也会全部监听  2. 计算后的属性可不在 data 中定义,如果定义会报错,因为对应的computed作为计算属性定义并返回对应的结果给这个变量,变量不可被重复定义和赋值。 而 watch 监听 data 中定义的变量变化computed特性1.是计算值,2.应用:就是简化tempalte里面{{.
原创
发布博客 2021.11.14 ·
1066 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

JS基本类型和引用类型的区别

1.基本类型基本的数据类型有:`undefined,boolean,number,string,null.基本类型的访问是按值访问的,就是说你可以操作保存在变量中的实际的值。 基本类型有以下几个特点:1.基本类型的值是不可变得:任何方法都无法改变一个基本类型的值,比如一个字符串:var name = 'jozo';name.toUpperCase(); // 输出 'JOZO'console.log(name); // 输出 'jozo'会发现原始的name并未发生改变,而是调
原创
发布博客 2021.11.05 ·
954 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

JS面试题

单选题JS基础js概念与类型检测 以下不属于 typeof 运算符返回值的是? A."string"B."function"C."object"D."null"复制代码 执行以下代码,错误的输出结果是 A. 输入:typeof{"x":1}输出:"object"B. 输入:typeof1输出:"number"C. 输入:typeof[{x:1}]输出:"array"D. 输入:typeofNaN输出:"number"复制...
原创
发布博客 2021.11.05 ·
1283 阅读 ·
0 点赞 ·
1 评论 ·
8 收藏
加载更多