自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 浏览器

浏览器 缓存 强缓存:也称为本地缓存,不向服务器发送请求,直接使用客户端本地缓存数据; 协商缓存:也称为304缓存,向服务器发送请求,由服务器判断请求文件是否发生改变。如果未发生改变,则返回304状态码,通知客户端直接使用本地缓存;如果发生改变,则直接返回请求文件。 协商缓存 强缓存 浏览器在加载资源时,会先根据本地缓存资源的 header 中的 expires 和 cahe...

2021-05-26 10:10:42 218

原创 JavaScript

Javascript 数据类型 基本数据类型:string、number、boolean、symbol、undefined、null; 引用类型:Object、Array、Function、Map等; 判断数据类型方法 typeof:能够快速区分基本数据类型,但是引用类型判断都返回object(eg: console.log(typeof function(){}); // functio...

2021-05-26 09:39:21 210 1

原创 vue-Observe、Dep、Watcher

问题:如代码所示,我们在多次更新data属性,会不会触发多次dom diff计算和渲染,在更新data属性到dom渲染过程发生了什么事? <template> <div> <div>{{title}}</div> <div @click="refresh">更新</div> ...

2020-11-09 14:05:01 749

原创 vue-diff算法

虚拟DOM(Virtual Dom),也就是我们常说的虚拟节点,是用JS对象来模拟真实DOM中的节点,该对象包含了真实DOM的结构及其属性,用于对比虚拟DOM和真实DOM的差异,从而进行局部渲染来达到优化性能的目的,避免频繁对真实DOM操作造成布局重排、回流重绘等性能开销。 1、diff算法: 渲染真实DOM的开销是很大的,轻微的操作都可能导致页面重新排版,非常耗性能。 相对于DOM对象,js...

2020-11-09 13:24:50 320

原创 KVM安装

1、基础环境:centos7.x 1.1、防火墙设置, 放开端口访问: firewall-cmd --set-default-zone trusted 1.2 关闭selinux # 编辑/etc/sysconfig/selinux文档 vi /etc/sysconfig/selinux #将SELINUX=enforcing改为SELINUX=disabled #重启服务器 1.3 一键部署...

2020-06-11 16:53:29 192

原创 Jenkins安装

1、基础环境:centos7.x 1.1、防火墙设置, 放开端口访问: firewall-cmd --set-default-zone trusted 1.2 关闭selinux # 编辑/etc/sysconfig/selinux文档 vi /etc/sysconfig/selinux #将SELINUX=enforcing改为SELINUX=disabled #重启服务器 2、安装dock...

2020-06-08 10:12:36 163

原创 Vue造成内存泄露的一些问题

在vue文件中的script标签里定义变量导致的内存泄露 如下,在vue文件定义了一个const变量,最终无法释放: // Text.vue <template></template> <script> const TYPE = { TYPE_TEST: 'type-test' }; export default { ...

2020-05-28 11:25:04 1446 1

原创 iOS安全编码规范

一.本地数据安全规范 1.本地存储密码、敏感数据加密: 本地存储:NSUserDefaults存储、plist文件存储、归档存储、CoreData存储时候,不能存储明文密码和敏感数据(如:用户手机号、姓名、邮箱、身份证、银行卡等敏感信息)。 原因: iTunes会备份应用Documents目录,越狱手机通过iTools工具等可以直接查看应用的Documents、Library/Caches、Tmp...

2020-05-28 11:23:57 982

原创 Vue 数据双向绑定

1.响应式原理 Vue的响应式原理依赖于Object.defineProperty,这也是Vue不支持IE8 以及更低版本浏览器的原因。Vue通过设定对象属性的 setter/getter 方法来监听数据的变化,通过getter进行依赖收集,而每个setter方法就是一个观察者,在数据变更的时候通知订阅者更新视图。 将整个流程进行最简化,见下图: 下面会重点说明Observer、Dep、Watch...

2019-11-28 15:22:54 252

原创 Vue 数据双向绑定

1.响应式原理 Vue的响应式原理依赖于Object.defineProperty,这也是Vue不支持IE8 以及更低版本浏览器的原因。Vue通过设定对象属性的 setter/getter 方法来监听数据的变化,通过getter进行依赖收集,而每个setter方法就是一个观察者,在数据变更的时候通知订阅者更新视图。 将整个流程进行最简化,见下图: 响应式原理 下面会重点说...

2019-11-28 15:21:11 146

原创 Python2.7 批量生成二维码

导语: 本文针对mac电脑利用Python2.7脚本批量生成二维码,由于Python生成二维码利用了qrcode和image库,需要先用pip安装这两个库。这里顺便说了下pip的安装。 ### 1.pip的安装 * 用命令行安装pip ~~~ sudo easy_install pip ~~~ * 检查是否安装成功,只要不是not found pip,则安装成功 ~~~ pip help ~...

2019-10-09 17:41:54 314

原创 软件设计师考点内容分析(三)

1.VLIW VLIW(Very Long Instruction Word),超长指令字。一种非常长的指令组合,它把许多条指令连在一起,增加了运算的速度。 2.编译程序、解释程序 编译程序:编译程序的功能是把用高级语言书写的源程序翻译成与之等价的目标程序。编译过程划分为词法分析、语法分析、语义分析、中间代码生成(三种表达形式:语法树、后缀式、三地址代码)、代码优化和目标代码生成6个阶段。目...

2019-10-09 17:40:07 181

原创 软件设计师考点内容分析(二)

1.软件质量特性 功能性:适合性、准确性、互操作性、保密安全性、功能依从性。 可靠性:成熟性、容错性、易恢复性、可靠依从性。 易用性:易理解性、易操作性、易学性、吸引性、易用依从性。 效率:时间特性、资源利用、效率依从性。 维护性:易分析性、易改变性、稳定性、易测试性、维护依从性。 可移植性:适用性、易安装性、共存性、易替换性、可移植性的依从性。 2.环形复杂度计算 环形复杂度V(G) = ...

2019-10-09 17:39:32 300

原创 软件设计师考点内容分析(一)

1、CPU构成 程序计数器(PC):存放执行指令的地方,计算之前要用到 累加器(AC):暂时存放算数逻辑运算部件ALU运算的结果信息 指令寄存器(IR):保存当前正在执行的一条指令 地址寄存器(AR):保存当前CPU所要访问的内存单元的地址 ###2、DMA(Direct Memory Access,直接内存存取) DMA工作方式,是在DMA控制硬件的控制下,实现内存与外设间数据的直接传送,...

2019-10-09 17:38:47 194

原创 git pull 冲突解决

###导语: 在公司团队中写完代码就要提交到git上面,因为多人合作,先要将远端的代码pull更新到本地。往往这时候因为大家对同一个文件同一个地方做了操作,导致pull代码冲突发生,工程崩溃。提示错误信息如下: error: Your local changes to 'c/environ.c' would be overwritten by merge. Aborting. Please,...

2019-10-09 17:38:03 310

原创 Mac 10.3 免费NTFS挂载省了几百元

###导语: 最近在苦恼NTFS硬盘在Mac 10.13上一直无法write,找了许多方法,其中包括打开Mac原生NTFS write功能解决方法,破解版Paragon NTFS等都无法实现。正苦恼的小编打算买一个正版的Paragon NTFS,但是看着价格心有余不甘,于是来到国外论坛上,终于发现了一个办法,妥妥的挂载上我的NTFS硬盘,实现了read and write功能,今天就把它记录下来...

2019-10-09 17:37:26 293

原创 iframe的document操作

###1.获取页面上的所有iframe标签遍历获取每一个iframe * 获取所有的iframe标签 ~~~ let iframes = document.getElementsByTagName("iframe"); ~~~ * 遍历获取单个iframe ~~~ for (let i = 0; i < iframes.length; i++) { let iframeId ...

2019-10-09 17:36:43 2203

原创 浏览器 Event Loop

###导语 本文的内容是浏览器的事件循环,并不是 nodejs 的事件循环,不要将两者混淆。 我们先从一段代码开始: document.body.appendChild(el) el.style.display = 'none' 这两句代码先把一个元素添加到 body,然后隐藏它。从直观上来理解,可能大部分人觉得如此操作会导致页面闪动,因此编码时经常会交换两句的顺序:先隐藏再添加。 但实际上两者...

2019-10-09 17:34:30 218

原创 electron-vue工程搭建

1、 安装 vue-cli: npm install -g vue-cli 2、安装脚手架样板代码 vue init simulatedgreg/electron-vue 工程名 脚手架安装 3、工程文件树展示: .electron-vue目录:打包构建的webpack配置 build目录:主要放了应用icon图标、已经存放打包好的应用(如:exe、dmg) di...

2019-09-28 17:20:27 271

原创 XSS攻击

1、XSS XSS(Cross Site Scripting)攻击全称跨站脚本攻击,为了不与CSS(Cascading Style Sheets)混淆,故将跨站脚本攻击缩写为XSS,XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。 通俗的来说就是我们的页面在加载并且渲染绘制的过程中,如果加载并执行了意料之外的程序或代码(脚本、样式),...

2019-09-20 10:57:02 287

原创 BugFree系统部署

导语: 最近公司需求,需要部署一个测试case录入系统、bug记录系统,而同事推荐之前使用过的BugFree系统,这个由淘宝开发的开源系统,但已经在2013年就停止更新了,那么我们介绍下如何部署。 1.准备环境 ①、CentOS-7-x86_64-Minimal-1708系统:http://59.80.44.100/isoredirect.centos.org/centos/7/is...

2019-03-27 10:47:02 683

原创 细说@property(五)

copy和mutableCopy copy和mutableCopy之间的差异主要和深拷贝和浅拷贝有关,先看一下深拷贝、浅拷贝的概念。 深拷贝、浅拷贝 所谓浅拷贝,在Objective-C中可以理解为引用计数加1,并没有申请新的内存区域,只是另外一个指针指向了该区域。深拷贝正好相反,深拷贝会申请新的内存区域,原内存区域的引用计数不变。看图来说明深拷贝和浅拷贝的区别。 首先A指向一块内...

2019-02-01 10:16:57 133

原创 细说@property(四)

copy和strong copy和strong的区别是面试中出现频率最高的,我们一般都知道,不可变对象属性修饰符使用copy,可变对象属性修饰符使用strong。 可变对象和不可变对象 Objective-C中存在可变对象和不可变对象的概念。像NSArray、NSDictionary、NSString这些都是不可变对象,像NSMutableArray、NSMutableDictionary、...

2019-01-31 17:52:31 147

原创 细说@property(三)

@property修饰符 定义一个属性时,nonatomic、copy、strong、assign等被称作是关键字,或者是修饰符。 修饰符种类 原子性。原子性有nonatomic、atomic两个值,如果不写nonatomic,那么默认是atomic的。如果属性是atomic的,那么在访问其getter和setter方法之前,会有一些判断,大概是判断是否可以访问等,这里系统使用的是自旋锁...

2019-01-16 16:16:04 183

原创 细说@property(二)

@property合成和重写 自动合成 定义一个@property,在编译期间,编译器会生成实例变量、getter方法、setter方法,这些方法、变量是通过自动合成(autosynthesize)的方式生成并添加到类中。实际上,一个类经过编译后,会生成变量列表ivar_list,方法列表method_list,每添加一个属性,在变量列表ivar_list会添加对应的变量,如_name,方法列表...

2019-01-03 20:57:07 282 1

原创 细说@property(一)

@property是什么? @property = 实例变量 + get方法 + set方法 @property (nonatomic, copy) NSString *name; 上面这段代码,可能初学者理解也就是声明一个对象的属性。其实,我们再进一步可以拆分这段代码,它创建了一个实例变量,并且给这个实例变量设置了一个setter方法来设置这个变量的值、一个getter方法来获取这个变...

2018-12-19 20:45:48 223

原创 浏览器 Event Loop

导语 本文的内容是浏览器的事件循环,并不是 nodejs 的事件循环,不要将两者混淆。 我们先从一段代码开始: document.body.appendChild(el) el.style.display = 'none' 这两句代码先把一个元素添加到 body,然后隐藏它。从直观上来理解,可能大部分人觉得如此操作会导致页面闪动,因此编码时经常会交换两句的顺序:先隐藏再添加。 但...

2018-10-05 19:55:16 259

原创 Mac 10.3 免费NTFS挂载省了几百元

导语: 最近在苦恼NTFS硬盘在Mac 10.13上一直无法write,找了许多方法,其中包括打开Mac原生NTFS write功能解决方法,破解版Paragon NTFS等都无法实现。正苦恼的小编打算买一个正版的Paragon NTFS,但是看着价格心有余不甘,于是来到国外论坛上,终于发现了一个办法,妥妥的挂载上我的NTFS硬盘,实现了read and write功能,今天就把...

2018-09-29 10:42:04 236

原创 iframe的document操作

导语: 在我写网页代填插件的时候,有遇到拿不到input元素的时候,这时候我去看元素布局,发现有些网站登录那一块是用iframe标签写的,这时候我需要取到的那就是iframe标签下input元素 1.获取页面上的所有iframe标签遍历获取每一个iframe 获取所有的iframe标签 let iframes = document.getElementsByTagName...

2018-08-11 17:39:22 661

原创 Python2.7 批量生成二维码

导语: 本文针对mac电脑利用Python2.7脚本批量生成二维码,由于Python生成二维码利用了qrcode和image库,需要先用pip安装这两个库。这里顺便说了下pip的安装。 1.pip的安装 用命令行安装pip sudo easy_install pip 检查是否安装成功,只要不是not found pip,则安装成功 pip help 2.安装qr...

2017-11-13 20:34:37 339

原创 git pull 冲突解决

导语: 在公司团队中写完代码就要提交到git上面,因为多人合作,先要将远端的代码pull更新到本地。往往这时候因为大家对同一个文件同一个地方做了操作,导致pull代码冲突发生,工程崩溃。提示错误信息如下: error: Your local changes to 'c/environ.c' would be overwritten by merge. Aborting. Pl...

2017-11-13 20:34:22 254

原创 软件设计师考点内容分析(三)

1.VLIW VLIW(Very Long Instruction Word),超长指令字。一种非常长的指令组合,它把许多条指令连在一起,增加了运算的速度。 2.编译程序、解释程序 编译程序:编译程序的功能是把用高级语言书写的源程序翻译成与之等价的目标程序。编译过程划分为词法分析、语法分析、语义分析、中间代码生成(三种表达形式:语法树、后缀式、三地址代码)、代码优化和目标代码...

2017-11-07 22:32:12 138

原创 软件设计师考点内容分析(二)

1.软件质量特性 功能性:适合性、准确性、互操作性、保密安全性、功能依从性。 可靠性:成熟性、容错性、易恢复性、可靠依从性。 易用性:易理解性、易操作性、易学性、吸引性、易用依从性。 效率:时间特性、资源利用、效率依从性。 维护性:易分析性、易改变性、稳定性、易测试性、维护依从性。 可移植性:适用性、易安装性、共存性、易替换性、可移植性的依从性。 2.环形复杂度计算 环形复杂...

2017-11-05 23:27:36 206

原创 软件设计师考点内容分析(一)

1、CPU构成 程序计数器(PC):存放执行指令的地方,计算之前要用到 累加器(AC):暂时存放算数逻辑运算部件ALU运算的结果信息 指令寄存器(IR):保存当前正在执行的一条指令 地址寄存器(AR):保存当前CPU所要访问的内存单元的地址 2、DMA(Direct Memory Access,直接内存存取) DMA工作方式,是在DMA控制硬件的控制下,实现内存与外设间数据的...

2017-10-26 20:52:58 412 1

空空如也

空空如也

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

TA关注的人

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