YoungZhang's Blog


  • Home

  • About

  • Tags

  • Categories

  • Archives

关于CDN的总结

Posted on 2018-08-09 | In 计算机网络 |

什么是 CDN

CDN 是将源站内容分发至最接近用户的节点,使用户可就近取得所需内容,提高用户访问的响应速度和成功率。解决因分布、带宽、服务器性能带来的访问延迟问题,适用于站点加速、点播、直播等场景。

Read more »

深入DNS查询

Posted on 2018-08-09 | In 计算机网络 |

为什么需要 DNS 解析

我们一般都是在地址栏输入域名去访问站点,因为我们是无法记住超多个 IP 地址的。但是计算机在网络上进行通讯时又只能识别 IP 地址,并不能识别域名,因为网络通信大都是基于 TCP/IP 的,而 TCP/IP 是基于 IP 地址的。这个时候,就需要 DNS 服务器将我们输入的域名“翻译”成对应的 IP 地址,继续后续的工作。

Read more »

聊聊阿里淘宝SSO跨域登录过程

Posted on 2018-08-08 | In 计算机网络 |

场景:你在访问淘宝首页之后,需要登录,当你登录成功之后,再去访问天猫,你会发现,天猫也是登录状态,这是怎么做到的?

好吧~介绍阿里的 SSO 机制之前,建议移步至 Cookie 和 Session 先普及一下 Cookie 和 Session 机制。接下再介绍三个概念叫 访问控制 、SSO 和 权限系统。

Read more »

Cookie和Session

Posted on 2018-08-08 | In 计算机网络 |

Cookie

  1. Cookie机制

Cookie 是客户端保存用户信息的一种机制,用来记录用户的一些信息。Cookie 是小型文本文件,内容为一系列键值对。Cookie 是由 HTTP 服务器设置的,保存在浏览器中。

实现机制:

  • 浏览器向某个 URL 发起 HTTP 请求(可以是任何请求,比如 GET 一个页面,或者 POST 一个登录表单)
Read more »

浅谈Webpack的loader和plugin

Posted on 2018-08-07 | In 前端构建工具 |

关于 loader

loader 用于对模块的源代码进行转换。loader 可以让我们在 import 或“加载”模块时预处理文件。因此,loader 类似于 gulp 中的“任务”(task)。loader 可以将文件从不同的语言(TS或者ES6)转换为 JS,或者将内联图像转换为data URL。loader甚至允许你直接在JS模块中 import CSS文件! ——引自webpack.docschina.org

Read more »

瞅瞅五个最新的CSS特性

Posted on 2018-08-06 | In CSS |

看到《齐舞周刊》的一篇博文,作一整理:

五个新特性:

  • CSS Display Module Leval 3: display: contents
  • CSS Conditional Rules Module Leval 3: @support(…){…}
  • CSS Overscroll Behavior Module Leval 1: overscroll-behavior: contain
  • CSS Selectors Module Leval 4: :focus-within, :placeholder-shown
  • CSS Containment Module Leval 1: contain: paint

聊聊Vue的virtual-dom实现原理

Posted on 2018-07-31 | In 前端框架 |

首先,Vue在1.0的时代还没有虚拟dom这个概念,1.0时候频繁操作dom使用的是fragment来做修改,当然和vdom是无法媲美了,但是和innerHTML来比它还是提高了很大程度的性能的,毕竟fragment是可以比innerHTML减少很多次重排的。而Vue的virtual-dom(后文简称vdom吧~打字好累的哦~_~)是借鉴了React的,因为virtual-dom是React中的一个重要特性,而React是先于Vue发行问世的。所以很大程度上,Vue也是作为后来者吸取了React和Angular的经验,并在其上做了改进,才得以发展至今天的成果。

Read more »

为什么defineProperty不能检测到数组长度的变化

Posted on 2018-07-30 | In 前端框架 |

正如Vue文档中所述:

由于 JavaScript 的限制,Vue 无法检测到以下数组变动:1. 当你使用索引直接设置一项时,例如 vm.items[indexOfItem] = newValue 2. 当你修改数组长度时,例如 vm.items.length = newLength

首先,明白vue对于监听数据的变动是通过ES5的Object.defineProperty()来实现的,聊聊Vue的双向数据绑定 中已经说过Vue对于监测数组的变动是重写的数组的原型来达到目的的,原因是defineProperty不能检测数组的长度变化,准确来说是 通过改变数组的length而增加的长度是不能被监测到的 。

Read more »

聊聊Vue的双向数据绑定

Posted on 2018-07-28 | In 前端框架 |

先读一段对话娱乐一下~

我:——你在干嘛?

男票(Android客户端):——吃屎

我:——emmmm,懂了(他在读Android源码···)

好吧~我也要直播吃屎了······接下来就是我看完vue/src/core/observer之后的总结以及源码分析~看源码不仅是看实现原理,也是看大牛的编码风格,以及为日后接触别的框架源码打基础,今天我主要聊的就是Vue的双向数据绑定~

Read more »

浅谈前端模块化

Posted on 2018-07-22 | In 模块化方案 |

首先,为什么会有模块化的概念?

前端最开始的时候,所有的JS文件都写在一个文件里面,只要加载这一个文件就可以。但是随着JS的迅猛发展,网页中嵌入的JS代码越来越多,一个文件很难管理和维护,必须分成多个文件一次加载。但是一次加载多个JS文件的时候,浏览器会停止网页的渲染,加载文件越多,网页失去响应的时间就会越长。至此,出现了模块化的概念,根据依赖保证加载顺序。

Read more »
123…5

YoungZhang

越努力越幸运~

42 posts
13 categories
64 tags
GitHub E-Mail Google Instagram
© 2018 YoungZhang
Powered by Hexo
|
Theme — NexT.Pisces v5.1.4