-
RxJS:Cold vs Hot Observables
RxJS 中 Observables 分为两种:Cold Observables 和 Hot Observables,这两个到底有什么区别呢?我们先来看下【RxJS官方】给出的解释:Cold observables start running upon subscription, i.e., the observable sequence only starts pushing values to the observers when Subscribe is called. (…) Th...…
-
RxJS入门和概览
RxJS 是Reactive Extensions For JavaScript的简写,它是一个强大的 JavaScript Reactive 编程库。Reactive 是指响应式编程(Reactive Programming)。什么是响应式编程(Reactive Programming)?任何异步事件(比如页面鼠标 click 事件),在响应式编程都是异步事件流。不仅仅是 click、hover 这种事件,任何变量、用户输入、属性、缓存、数据结构等,响应式编程把所有事物都看成是数据流。数...…
-
HTTP/3 新特性
这篇文章主要会介绍以下内容: HTTP/2 的缺陷 QUIC 协议介绍 HTTP/3 新特性HTTP/2 的缺陷在上一篇文章 【HTTP/2 新特性】 里介绍了 HTTP/2 是基于 TCP 传输,但是 TCP 协议还是有两个个致命的缺陷: 建立连接时间长 队头阻塞问题相较于 HTTP/1.1 更严重1. 建立连接时间长目前是用 RTT(Round-Trip Time)来定义建立时间,RTT 指的是往返时间,表示从发送端发送数据开始,到发送端收到来自接受端的确认(接收端收到数据后...…
-
HTTP/2 新特性
本文主要会介绍以下内容: HTTP/1.x 协议的性能缺陷 为了优化 HTTP/1.x 的网络性能问题,前端用到的黑魔法 HTTP/2 新特性 HTTP/1.x 的 keep-alive 与 HTTP/2 多路复用的区别 HTTP/2 缺陷HTTP/1.x 协议的性能缺陷1. TCP 连接导致的性能瓶颈从上图可以看出,HTTP 的传输协议主要依赖于 TCP 来提供从客户端到服务器端之间的连接。TCP 建立连接有三次握手,加上 TCP 慢启动导致的传输速度低,打开和保持 TCP 连...…
-
Angular:ngDoCheck执行时机
在 Angular官方文档 对ngDoCheck执行时机是这么描述的:Detect and act upon changes that Angular can't or won't detect on its own.Called during every change detection run, immediately after ngOnChanges() and ngOnInit().直译过来就是: 在状态发生变化,Angular 自己本身不能捕获这个变化时会触发NgDo...…
-
Angular Change Detection:变化检测策略
在【Angular Change Detection:变化检测机制】这篇文章里介绍了 Angular 的变化检测机制,也提到了异步事件都会触发整个 Angular 应用的变化检测。Angular 默认的变化检测机制是ChangeDetectionStrategy.Default:异步事件 callback 结束后,NgZone 会触发整个组件树至上而下做变化检测,如下所示:但是在实际应用里,并不是每个异步操作需要变化检测,某些组件也可以完全不用做变化检测,应用越大页面越复杂,过多的变化检测...…
-
Angular Change Detection:变化检测机制
Angular 中的变化检测机制是当 component 状态有变化的时候,Angular 都能检测到这些变化,并且能够将这些变化反应到页面上。比如有这样一个 component,代码如下:@Component({ template:`<h1>I am <span [textContent]="data.name"></span><h1>`})export class CDParentComponent { data : any = { ...…
-
Angular:单向数据流
在介绍 Angular 单向数据流之前我们先来看下 Angular 中 component 之间关系树状结构图:比如在 child A component 从 http response 拿到最新 model 的值,并且需要把变化后的值渲染到页面,这个过程会触发 child A component 的变化检测(change detection)。这个变化检测不仅仅会在 child A component 中执行,它会从 root component 开始沿着 component 关系树结构...…
-
Angular:生命周期和钩子函数
Angular 中每个 component/directive 都有它自己的生命周期。包括创建组件,渲染组件,创建渲染子组件,检测绑定属性变化,回收和从 DOM 中移除。生命周期有这几种:OnChanges,OnInit,DoCheck,AfterContentInit,AfterContentChecked,AfterViewInit,AfterViewChecked,OnDestroy。钩子函数就是在对应的生命周期前面加上前缀 ng,比如 OnInit,对应的钩子函数是 ngOnIni...…
-
在Win10里安装Ruby和Jekyll遇到的问题
问题描述之前在搭自己的github.io的时候,需要在Win10里把整个Jekyll的环境搭起来,按照官网的步骤(如图所示):ruby装成功以后,按照官网步骤跑命令行:gem install jekyll bundler, 会报如下错误:ERROR: SSL verification error at depth 1: unable to get local issuer certificate (20)ERROR: You must add /DC=com/DC=nextestate...…