用 Stream 编程
缓冲模式和流模式
-
缓冲模式(buffer mode),在这种模式下系统会把某份资源传来的所有数据,都先收集到一个缓冲区里,直到操作完成为止。然后,系统把这些数据当成一个模块回传给调用方。比如
fs.writeFile、fs.readFile等; -
流模式(stream mode),在流模式下,系统会把自己从资源端收到的 每一块新数据都立刻传给消费方,让后者有机会立刻处理该数据。
缓冲模式(buffer mode),在这种模式下系统会把某份资源传来的所有数据,都先收集到一个缓冲区里,直到操作完成为止。然后,系统把这些数据当成一个模块回传给调用方。比如 fs.writeFile、fs.readFile 等;
流模式(stream mode),在流模式下,系统会把自己从资源端收到的 每一块新数据都立刻传给消费方,让后者有机会立刻处理该数据。
浏览器的缓存类型比较多,例如:
Disk Cache 和 Memory Cache 属于强缓存,是 HTTP 缓存的产物,强缓存的产生依赖于请求响应中的 cache-control 和 expires 的 headers 字段。这两个字段都用来设置缓存数据的有效时间。

git: 分布式版本控制系统。这篇文章是 Git 学习的知识总结。
微信小程序开发入门
then 方法基本就是 promise 的全部内容,至于 catch、resolve、reject 等方法都是在原有的基础上做的扩展或者封装,这些方法并不算是 promise 的核心。下面就一一实现这些方法。
promise 如今已经深度融入前端开发技术当中,很多模块内部都依赖 promise,使用 promise 可以很好的解决异步回调问题。
promise 内部有三种状态:预备态(pending)、成功态(fulfilled)和失败态(rejected)。初始状态是 pending,当操作完成时会变成成功态,如果操作出现异常而终止时它会变成失败状态(或拒绝态)。一旦 promise 被履行或者被拒绝,它就不可逆转,即不能从成功态再变回其他状态,状态之间不能再相互转换。此时的 promise 可以认为是完成状态(settled)。
事件冒泡与捕获是事件处理的两种机制,主要描述当在一个元素上有两个相同类型的事件处理器被激活会发生什么。
HTTP 缓存不是必须的,但重用缓存的资源通常是必要的。它可以减少服务器的压力,如果不使用缓存,每次发起请求都要求服务器发送相应数据,很多时候服务器发来的内容并没有发生变化,就会“浪费”服务器带宽。可以在客户端设置缓存,给缓存加上过期时间,如果期限没到就是用本地缓存的内容。然而常见的 HTTP 缓存只能存储 GET 响应,对于其他类型的响应则无能为力。