<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[a5372的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/a5372</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; a5372]]></copyright><item><title><![CDATA[面向对象编程]]></title><link>https://blog.youkuaiyun.com/a5372/article/details/102371220</link><guid>https://blog.youkuaiyun.com/a5372/article/details/102371220</guid><author>a5372</author><pubDate>Tue, 01 Oct 2019 20:00:00 +0800</pubDate><description><![CDATA[　面向对象编程的5个原则：
　　&lt;1&gt;单一职责原则
　　　　是指一个类或者模块应该有且只有一个去改变它的理由，这意味着一个类应该只有一项职责，并且该功能应该由这个类完全封装。　
　　&lt;2&gt;开发封闭原则
　　　　一个类应该对扩展是开放的，但是对修改是封闭的.意味着一个实体允许在不改变它的源代码的前提下变更它的行为
　　&lt;3&gt;里氏替换原则
　　...]]></description><category></category></item><item><title><![CDATA[React 使用链表遍历组件树]]></title><link>https://blog.youkuaiyun.com/a5372/article/details/102371221</link><guid>https://blog.youkuaiyun.com/a5372/article/details/102371221</guid><author>a5372</author><pubDate>Sat, 07 Sep 2019 21:32:00 +0800</pubDate><description><![CDATA[　　React 为控制UI的更新，提出了时间分片的概念，以达到三个目标：performing non-blocking rendering；applying updates based on the priority；pre-rendering content in the background.
　　React 遍历Dom Tree:
　　1. updates state and ...]]></description><category></category></item><item><title><![CDATA[React diff 算法]]></title><link>https://blog.youkuaiyun.com/a5372/article/details/102371219</link><guid>https://blog.youkuaiyun.com/a5372/article/details/102371219</guid><author>a5372</author><pubDate>Sun, 01 Sep 2019 19:43:00 +0800</pubDate><description><![CDATA[　　React是web前端UI库，关注的是如何高效地根据数据渲染UI界面。virtual dom 与高效的diff算法的结合，使得当数据发生变更时，react 能通过简洁高效的算法找出dom中真正变更，同时根据变更进行dom操作渲染UI界面。
　　传统的根据一个树形结构到另外一个树形结构的装换操作是一个复杂且耗时的过程，一般时间复杂度会达到O(n^3)，加上每个dom节点都是一个附带大...]]></description><category></category></item><item><title><![CDATA[JavaScript 对象操作]]></title><link>https://blog.youkuaiyun.com/a5372/article/details/102371218</link><guid>https://blog.youkuaiyun.com/a5372/article/details/102371218</guid><author>a5372</author><pubDate>Sat, 13 Jul 2019 19:34:00 +0800</pubDate><description><![CDATA[　　Object.defineProperty(obj, prop, descriptor)方法会直接在一个对象上定义一个新属性，或者修改一个对象的现有属性，并返回这个对象。
　　const freezeObj = Object.freeze(obj)， Object.freeze()方法可以冻结一个对象，冻结后,不能对象freezeObj添加新的属性，不能修改其已有属性的值，不能删...]]></description><category></category></item><item><title><![CDATA[nginx 工作流程]]></title><link>https://blog.youkuaiyun.com/a5372/article/details/102371217</link><guid>https://blog.youkuaiyun.com/a5372/article/details/102371217</guid><author>a5372</author><pubDate>Wed, 26 Jun 2019 22:57:00 +0800</pubDate><description><![CDATA[NGINX 把http请求处理流程划分为11个阶段，逻辑细分，以模块为单位进行处理。各个阶段可以包含多个http模块，每个阶段以流水线的形式处理请求。这样的分层处理模式与计算机网络的7层模式类似，每个模块以正交的方式处理请求，带来了低耦合，模块之间的低耦合带来灵活性。
　　1. NGX_HTTP_POST_READ
　　　接受到完整HTTP头部后的处理阶段，位于URI重写之...]]></description><category></category></item><item><title><![CDATA[React整洁的代码的一些原则]]></title><link>https://blog.youkuaiyun.com/a5372/article/details/102371216</link><guid>https://blog.youkuaiyun.com/a5372/article/details/102371216</guid><author>a5372</author><pubDate>Sat, 09 Mar 2019 22:56:00 +0800</pubDate><description><![CDATA[1. Model is everything
　　models are the heart of your app. If you have models separated from th rest of your application, maintaince will be much easier,regradless of how complicated your appli...]]></description><category></category></item><item><title><![CDATA[async await 使用笔记]]></title><link>https://blog.youkuaiyun.com/a5372/article/details/102371213</link><guid>https://blog.youkuaiyun.com/a5372/article/details/102371213</guid><author>a5372</author><pubDate>Sat, 09 Mar 2019 14:59:00 +0800</pubDate><description><![CDATA[　　JavaScript的网络请求异步的，即网络请求不会阻塞当前 js 代码的继续执行，而是通过回调的方式，网络请求的代码块中注入回调函数，当网络请求完成，会触发相应的事件，通过触发事件来执行注册的回调函数。回调的执行时间是不确定的，因此会影响程序的执行逻辑，另一方面，如果回调依赖过多，或导致很深的回调嵌套，使代码的可读性和可维护性降低。
　　async await 是 es7 中的新...]]></description><category></category></item><item><title><![CDATA[webpack 打包过程及常用插件]]></title><link>https://blog.youkuaiyun.com/a5372/article/details/102371212</link><guid>https://blog.youkuaiyun.com/a5372/article/details/102371212</guid><author>a5372</author><pubDate>Sun, 16 Dec 2018 14:39:00 +0800</pubDate><description><![CDATA[前言
　　要理解webpack 首先明白三个概念：module，chunk，bundles，即输入，中间态，输出。
　　chunk: This webpack-specific term is uesd internallt to manage the bunding process. Bundles are composed out of chunks,of which there...]]></description><category></category></item><item><title><![CDATA[web worker  实践]]></title><link>https://blog.youkuaiyun.com/a5372/article/details/102371211</link><guid>https://blog.youkuaiyun.com/a5372/article/details/102371211</guid><author>a5372</author><pubDate>Sun, 16 Dec 2018 12:38:00 +0800</pubDate><description><![CDATA[1.web worker
　　在浏览器中JavaScript主线程与UI渲染线程是互斥的。即UI渲染线程会阻塞JavaScript线程的运行。
　　web worker允许创建工作线程，并可以与JavaScript主线程同时运行，可以让一些占用大量计算资源的计算在worker线程上运行。
　　worker线程的出现是为了，大量的计算占用javascript 主线程，导致 DOM操作...]]></description><category></category></item><item><title><![CDATA[10 个常用的 es6 特性]]></title><link>https://blog.youkuaiyun.com/a5372/article/details/102371210</link><guid>https://blog.youkuaiyun.com/a5372/article/details/102371210</guid><author>a5372</author><pubDate>Sun, 15 Jul 2018 16:35:00 +0800</pubDate><description><![CDATA[1. const and let
  除了函数作用域之外，增加了块级作用域和常量。const 定义的绑定不可以修改，let定义的绑定在{ }不能访问。之前的 var 如果不在函数作用域内，相当于定义了一个全局变量，并且有变量提升（将变量的声明提升至所在函数的最前面）。

2. 数组函数
  新增了一些数组处理函数，可以更加方便的对数组进行操作。
  let a ...]]></description><category></category></item><item><title><![CDATA[Vue双向数据绑定]]></title><link>https://blog.youkuaiyun.com/a5372/article/details/102371270</link><guid>https://blog.youkuaiyun.com/a5372/article/details/102371270</guid><author>a5372</author><pubDate>Wed, 18 Oct 2017 17:00:00 +0800</pubDate><description><![CDATA[0 引言
 实现双向数据绑定的方法有：
 1.发布者---订阅者模式(backbone.js)
 2.脏值检查(Angular)
 3.数据劫持(vue)
1 Angular是通过脏值检测的方式对比数据是否有变更，来决定是否更新视图
 最简单的的方式就是通过setInterval()定时轮询检测数据变动。
 Angular的脏值检测只在指定的事件触发时进入脏...]]></description><category></category></item><item><title><![CDATA[JavaScript 对象创建及继承方式]]></title><link>https://blog.youkuaiyun.com/a5372/article/details/102371268</link><guid>https://blog.youkuaiyun.com/a5372/article/details/102371268</guid><author>a5372</author><pubDate>Wed, 18 Oct 2017 15:16:00 +0800</pubDate><description><![CDATA[前言:
 JavaScript 除了null和undefined之外，其他变量都可以当做对象使用。
 JavaScript 的基本数据类型有：number boolean string null undefined ,其他所有值都是对象。
 JavaScript 的 typeof 只能判断 number boolean string undef...]]></description><category></category></item><item><title><![CDATA[前端性能优化基本原理]]></title><link>https://blog.youkuaiyun.com/a5372/article/details/102371302</link><guid>https://blog.youkuaiyun.com/a5372/article/details/102371302</guid><author>a5372</author><pubDate>Thu, 07 Sep 2017 09:15:00 +0800</pubDate><description><![CDATA[1.加载优化
　　1.1 减少HTTP请求
　　　　(a)合并CSS，JavaScript (b)合并小图片，使用雪碧图（即将小图片合成一个小图片，加载后通过坐标获取各个小图片）
　　1.2 使用缓存
　　　　使用缓存可以减少向服务器发送的请求数，节省加载时间，所以所有静态资源都要在浏览器端设置缓存，并且尽量使用长cache
　　　　(a) 缓存一切可缓存的资源
　　　　...]]></description><category></category></item><item><title><![CDATA[前端所涉及到的网络知识]]></title><link>https://blog.youkuaiyun.com/a5372/article/details/102371267</link><guid>https://blog.youkuaiyun.com/a5372/article/details/102371267</guid><author>a5372</author><pubDate>Wed, 06 Sep 2017 22:15:00 +0800</pubDate><description><![CDATA[0 两个小知识点
　　&lt;meta&gt;提供了有关页面的元信息，比如针对搜索引擎和更新频率的描述和关键词。
　　Linux top 是Linux 下常用的性能分析工具，能实时显示系统中各个进程的资源占用情况，用途是看哪些进程最耗CPU资源，占用的内存最多。
　　top  -P 按%CPU使用率排行，根据CPU使用百分比的的大小进行排序
　　 -T 切换显示进...]]></description><category></category></item><item><title><![CDATA[浏览器的渲染原理]]></title><link>https://blog.youkuaiyun.com/a5372/article/details/102371298</link><guid>https://blog.youkuaiyun.com/a5372/article/details/102371298</guid><author>a5372</author><pubDate>Wed, 06 Sep 2017 16:53:00 +0800</pubDate><description><![CDATA[1.代码是如何变成网页的
　　
　　&lt;1&gt;页面生成分为5步

HTML 解析为 DOM Tree;
Css 代码转化为CSS OM (css object model)
DOM Tree 与 CSS OM 合成一颗渲染树
生成页面布局，即将所有的渲染树所有节点进行页面合成
将布局绘制到屏幕上

　　补充浏览器的渲染过程：JavaScript/CSS --&...]]></description><category></category></item><item><title><![CDATA[Node 入门<1>]]></title><link>https://blog.youkuaiyun.com/a5372/article/details/102371264</link><guid>https://blog.youkuaiyun.com/a5372/article/details/102371264</guid><author>a5372</author><pubDate>Wed, 06 Sep 2017 12:43:00 +0800</pubDate><description><![CDATA[1. Node
 　 JavaScript web服务器框架，主要特点：事件驱动，异步 I/O，强制不共享任何资源的单线程，单进程系统。
　　每一个node进程都构成网络应用中的一个节点。
　　 
 左图是Chrome浏览器的大体框架，右图是Node大体框架。补充说明webkit是用c语言开发的浏览器内核。
　　浏览器的主要组件有：

HT...]]></description><category></category></item><item><title><![CDATA[css 样式优先级]]></title><link>https://blog.youkuaiyun.com/a5372/article/details/102371261</link><guid>https://blog.youkuaiyun.com/a5372/article/details/102371261</guid><author>a5372</author><pubDate>Tue, 05 Sep 2017 15:12:00 +0800</pubDate><description><![CDATA[1.css
　　CSS 样式重置的是一些默认带有margin值的元素，而 li 默认没有 margin 值。
2.css 样式优先级
　　优先级是基于不同选择器组成的匹配元素规则。优先级高的css样式，将覆盖优先级低的css样式，成为最终dom元素在网页中显示的样式。（误区，简单认为定义顺序靠后的css样式会覆盖定义顺序在前的css样式）。
　　给元素添加的内联样式总会覆盖外部样...]]></description><category></category></item><item><title><![CDATA[z-index]]></title><link>https://blog.youkuaiyun.com/a5372/article/details/102371258</link><guid>https://blog.youkuaiyun.com/a5372/article/details/102371258</guid><author>a5372</author><pubDate>Tue, 05 Sep 2017 14:50:00 +0800</pubDate><description><![CDATA[1.概念
　　将网页看成一个三维空间，z-index相当于设置元素在z 轴上的坐标。因此有了3个概念：层叠上下文，层叠层，层叠次序；
 层叠次序如下：
 1&gt;背景和边框：形成层叠上下文的元素的背景和边框，层叠上下文中最低等级。
　　2&gt;负z-index值：层叠上下文内设置了负z-index的子元素。
　　3&gt;块级元素：文档流中非行内非定位...]]></description><category></category></item><item><title><![CDATA[事件代理]]></title><link>https://blog.youkuaiyun.com/a5372/article/details/102371256</link><guid>https://blog.youkuaiyun.com/a5372/article/details/102371256</guid><author>a5372</author><pubDate>Sun, 03 Sep 2017 16:55:00 +0800</pubDate><description><![CDATA[1.事件代理
　　事件代理是指在父元素上注册事件回调函数，若在父元素容器内的子元素触发了该事件，则在父元素上响应该事件。即父容器代理了在其容器内所有子元素的事件处理，优点是：1&gt;减少了事件绑定（只需要在父容器上绑定事件）；2&gt;动态变化的DOM结构仍然可以监听（父元素可以根据event.target.tagName 判断触发事件是哪个子元素）。
2.浏览器差异
　　火狐 ...]]></description><category></category></item><item><title><![CDATA[XSS && CRLF && property&attribute]]></title><link>https://blog.youkuaiyun.com/a5372/article/details/102371253</link><guid>https://blog.youkuaiyun.com/a5372/article/details/102371253</guid><author>a5372</author><pubDate>Sat, 02 Sep 2017 14:24:00 +0800</pubDate><description><![CDATA[XSS
　　cross-site scripting 跨站点脚本，为了避免与css冲突，命名为XSS。它是将恶意代码作为一个网页内容，这些恶意代码会注入到用户的浏览器中并执行，从而使用户受到攻击，常见的有窃取用户的cookie。对web服务器无直接危害。　　
　　解决方法：
　　在服务器端通过filter过滤检查提交参数的合法性。
CRLF
 HTTP响应拆分漏洞，也...]]></description><category></category></item></channel></rss>