用co玩转异步

2016-08-25
阅读 3 分钟
6.3k
之前我在关于Promise的文章中提到了co这个库。在这篇文章里,我将写一写自己对它的认识。 Trust me,用了co库,你不想用别的,来它半斤异步调用你一口能吃仨。 但是我对Tj大神的co库源码谈不上深入理解。所以,如有乱讲,欢迎指正。 我这里默认读者对Promise和Generator有一定的认识。 先安利自己写的两篇关于Promise的...

再谈Promise

2016-08-24
阅读 4 分钟
3.8k
Promise是解决异步问题的利器。它其实是一种模式。Promise有三种状态,未完成态、完成态、失败态,相信大家一定不陌生,Promise对象允许使用.then的形式,将回调放到IO操作等异步方法的主体之外,使代码优美不少。

浅谈ES6原生Promise

2016-08-24
阅读 3 分钟
11k
Promise的兴起,是因为异步方法调用中,往往会出现回调函数一环扣一环的情况。这种情况导致了回调金字塔问题的出现。不仅代码写起来费劲又不美观,而且问题复杂的时候,阅读代码的人也难以理解。 举例如下:

浅谈Redux(之一):Middleware原理

2016-08-02
阅读 3 分钟
5.9k
app.use中的方法,可以在其后面的http VERB调用之前,对request对象和response对象进行处理,然后通过调用next方法将处理过程转发到下一中间件或者通过返回响应来结束处理过程。(之后有机会的话再写一写Node和Express)。

理解原型链和原型继承

2016-08-02
阅读 4 分钟
9.9k
JavaScript中的每个对象,都有一个内置的_proto_属性。这个属性是编程不可见的(虽然ES6标准中开放了这个属性,然而浏览器对这个属性的可见性的支持不同),它实际上是对另一个对象或者null的引用。

浅谈MV*模式

2016-08-02
阅读 3 分钟
4.8k
最近想总结一下前端中的MV*(MVC、MVP、MVVM)模式。 但是,鉴于自己的理解还是比较局限,我想在此转Livoras的一篇博客。 本文对这篇博客的观点比较赞同,并且引用了该文章的图片。大家可以不必展开我的文章,直接读这一篇大作。 原文链接:界面之下:还原真实的MV*模式。 注:本文有图,但是由于网络原因,图片未能上传...

理解Event-Loop

2016-08-02
阅读 2 分钟
3.4k
浏览器是一个事件驱动(event-driven)架构的软件。它的UI线程中会不断产生用户事件。但是处理事件的JavaScript是单线程执行的,这是一个浏览器环境下难以改变的现状(HTML5 Web Works没有从本质上改变这个模型)。这意味着:在JavaScript处理某个任务(执行某段代码)过程中,如果产生了用户事件,它不会立即被处理。那...

深入执行环境、作用域链和闭包

2016-08-02
阅读 2 分钟
2.5k
在JavaScript引擎中,执行环境是由一类特殊的对象——执行环境对象——来实现的。由于一个函数执行的时候可能对应不同的上下文,所以每次函数执行的时候都会由引擎为该函数创建一个独一无二的执行环境对象。函数执行完毕时,由垃圾回收(GC)机制来决定是否将该执行环境对象回收。

几种Ajax技术

2016-08-02
阅读 3 分钟
3.7k
今天我来谈谈Ajax技术。 Ajax是一种与服务器通信而无需重载页面的方法。数据可以从服务器获取或者发给服务器。 Ajax和异步分不开,但是本文重点部分不是异步,而是对实现Ajax的技术进行总结。 我简要罗列一下几种常见的Ajax技术: 动态脚本注入和JSON-P 图片信标(Beacons) XMLHttpRequest(XHR)技术 接下来我简要谈谈我...

浏览器线程阻塞和无阻塞加载脚本的理解

2016-08-02
阅读 3 分钟
12k
一个页面,从被请求访问,到用户可以看到页面、操作页面,到最后页面完全加载完毕,中间需要经历一个相当奇幻的过程,这个过程的速度被“web性能师”孜孜不倦、前赴后继的优化。本文讨论的是其中一个优化。