自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 浏览器输入URL之后发生什么

用户输入URL地址 对URL地址进行DNS域名解析 进行TCP连接 进行HTTP报文的请求与响应 浏览器解析文档资源并渲染页面 DNS域名解析 浏览器根据url,在自身缓存中查找DNS中的解析记录。如果存在,则直接返回IP地址;如果不存在,则查找操作系统中的hosts文件是否有该域名的DNS解析记录,如果有就返回 若上一步没有解析记录,或者已过期,则向域名服务器发起请求解析这个域名。 ...

2020-03-25 10:36:33 95

原创 浏览器事件循环机制Event Loop

概念 Event Loop即事件循环,是指浏览器或者Node的一种解决JavaScript单线程运行时不会阻塞的一种机制,也就是我们经常使用的异步的原理。是指函数在执行栈、宿主环境、任务队列中的循环移动。 栈,计算机科学中,限定仅在表尾进行插入和删除操作的线性表。栈是一种数据结构,遵循后进先出的原则。 队列,只允许在表的前端进行删除操作,在表的后端进行插入操作。(类似生活中排队)遵循先进先出...

2020-03-25 09:59:53 224

原创 webpack六大核心概念

Entry 入口,Webpack执行构建的第一步从entry开始,可抽象成输入。 Module 模块,在webpack中一切皆模块,一个模块对应一个文件。webpack会从入口文件开始递归找出所有依赖的模块。 Chunk 代码块,一个chunk由多个模块组合而成,用于代码合并与分割。 Loader 模块转换器,用于将模块的原内容按照需求转成新内容。 Plugin 插件,使用插件完...

2020-03-25 00:23:14 119

原创 Webpack打包优化

开发环境 1.热模块替换HMR 优化开发环境加载速度。正常情况下,开发环境修改了某一模块代码,运行时,会重新加载所有css资源以及js资源。开启HMR功能之后,在一个源码发生改变时,只重新编译发生变化的模块,再利用新输出的模块替换老模块。 配置方式 devServer:{ contentBase:resolve(__dirname,'build'), compres...

2020-03-25 00:16:33 178

原创 浏览器渲染页面过程解析

浏览器页面解析 浏览器解析生成页面大致可分为五个步骤: HTML代码转成DOM树 CSS代码转成CSSOM (CSS Object Model) 结合DOM树和CSSOM生成 Render树(包含每个节点的视觉信息) 生成布局(layout),将所有渲染树的所有节点进行平面合成 将布局绘制(paint)在屏幕上。 "生成布局"(flow)和"绘制"(paint)这两步,合称为"渲染"(...

2020-03-24 23:16:18 149

原创 Vue强制刷新组件的方式

使用this.$forceUpdate,强制刷新组件。 使用watch监测值的变化,与v-if以及this.$nextTick配合使用。 使用key-changing。vue使用key标记组件身份,当key改变时就是释放原始组件,重新加载新的组件。 ...

2020-03-24 23:03:36 721

原创 IE不兼容某些新特性问题

1.IE盒模型 2.在IE中不支持动态的写table的innerHTML,但是支持div或者span的innerHTML动态读写。 3.rgba不兼容 4.window.event对象 IE具有window.event对象,其余浏览器没有。通过给函数传参解决 5.event.srcElement IE没有event.target属性,只有srcElement。 ...

2020-03-24 22:51:29 113

原创 JS实现继承

ES5实现 方式一:子类原型指向父类实例; 缺点: 1.无法向父类传参 2.想在子类原型上添加方法必须在new Person之后 3.父类原型上所有属性被共享 function Person(name, age) { this.name = name;...

2020-03-22 22:57:55 103

原创 JS实现冒泡排序以及快速排序

冒泡排序:将数组数组相邻两项进行比较,如果前一个比后一个大,则交换他们两个。 function bubbleSort(arr) { for (let i = 0; i < Math.floor(arr.length / 2); i++) { for (let j = 0; j < arr.length - i; j++) { if (arr[j] &g...

2020-03-22 21:18:50 285

原创 JS实现数组去重的四种方式

将数组每一位作为对象属性,输出对象属性名。具体实现如下 function arrUnique(arr) { let obj = {} arr.forEach((item) => { if (obj[item]) { return } else { obj[item] = 1 } }) let uniArr = Obj...

2020-03-22 17:35:08 160

原创 数组方法汇总

添加: 1.push:向数组最后一位添加,改变原数组。 2.unshift:向数组首位开始添加,改变原数组。 3.splice:(index,0,value)从index位置开始,删除0位,添加value值。 当参数为数组时,整个数组作为最后一位或者第一位添加。参数可为多个。 删除: 1.pop:删除数组最后一位。 ...

2020-03-22 17:02:19 165

空空如也

空空如也

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

TA关注的人

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