异步请求代理ajaxProxy

当前web系统的业务逻辑越来越多地向前端倾斜,前端负责的异步请求也越来越多,在日常业务需求开发中,执行异步请求时遇到的问题不少。有两个问题是我经常会遇到的。第一,前端并发触发异步请求,导致请求之间相互影响。第二,异步请求都是通过回调来完成,这必定会导致回调的多层嵌套,形成所谓的回调函数金字塔,这样的代码很丑陋也十分难以维护。ajaxProxy是一个异步请求的代码发送器,提供一种可读性更好的接口来实现异步请求的流程控制,并且提供了阻塞式请求,在执行这类请求前会将页面上其他并发请求中止掉。

more >>

AngularJS基础概念与核心原理

AngularJS是这两三年兴起的一款优秀的前端框架,最令我惊讶的是它实现了一些后台框架的思想,如MVC, 双向数据绑定,依赖注入等等,并且支持自定义语义化标签,方便封装一些前端组件。最新项目中用到这个框架,所以开始在看,稍微整理一下Angular的一些基础概念与原理性的东西分享一下。

more >>

使用nodeJs搭建一个简单的HTTP Server

NodeJs是一个基于Chrome内核的Javascript执行引擎,它的出现使得javascript可以掉渣天地运行在服务器端,这样一来很多业务逻辑不太复杂的网站完全可以用javascript一站式搭建起来。

NodeJs不仅可以用来编写服务器程序,还可以搭建Http Server,也就是说我们完全可以使用几句简单的js代码搭建起一个非阻塞的http服务器。

more >>

jQuery图片延迟加载插件

jquery.lazyload是一个实现图片延迟加载的jQuery 插件,它可以延迟加载长页面中的图片。在浏览器可视区域外的图片在初始状态下不会被载入,直到用户将页面滚动到它们所在的位置。这与图片预加载的处理方式正好是相反的。

在包含很多大图片长页面中延迟加载图片可以加快页面加载速度。浏览器将会在加载可见图片之后即进入就绪状态。在某些情况下还可以帮助降低服务器负担。

more >>

实现异步请求ajax的前进和后退 - PJAX

我们知道ajax可以实现页面内容的无刷新更新,但页面更新之后如果想返回到之前的状态,传统的ajax是无法实现的。

例如,在一个查询页面上,为了改善用户体验,用户的查询使用了异步请求改变页面上的查询结果。经过若干次查询之后,用户尝试点击浏览器的回退按钮想回到上一次的查询结果,可想而知结果是回到了之前访问的站点,而不是该页面上一次的查询结果,类似这样的需求经常会遇到。难道鱼与熊掌真的不可兼得?HTML5的出现让一切变得十分简单。

more >>

纯CSS实现的聊天气泡

在实现web设计稿的时候,对于一些相对没那么规则的显示,我们往往会使用图片的方式来解决。所以很多时候我们需要加载很多图片在支持一个设计相对比较美观的页面。其实一些设计我们完全可以使用纯CSS来实现,以减少图片的加载,例如类似聊天气泡等带有一个小尾巴的容器。

more >>

Redis实现发布/订阅模型

Redis提供了publish和subscribe/psubscibe指令来实现发布/订阅模型,发布和订阅的目标称为通道(channel)。subscribe/psubscribe了一个或多个通道的客户端,可以收到其他客户端向这个通道publish的消息。subscribe和psubscribe的区别是,前者指定具体的通道名称,而后者可以指定一个正则表达式,匹配这个表达式的通道都被订阅。例如,re…

more >>

Redis持久化策略

Redis是一个支持持久化的内存数据库,所谓持久化就是将内存中的数据同步到磁盘上。Redis支持两种持久化方式,第一种是Snapshot快照方式,这也是默认的持久化方式,另一种是Append-only File(AOF)的方式。Snapshotting快照方式快照持久化方式是将数据以快照的方式存入到一个二进制文件中,快照文件默认名称为dump.rdb,默认是保存在启动redis-server的路径…

more >>

行为型设计模式 — 访问者模式

什么是访问者模式访问者模式的定义是:封装某些作用于某种数据结构中各元素的访问,使得在不改变该数据结构的前提下修改或新增作用于这些元素的操作。简单来说,访问者模式就是引入一个访问者角色统一负责对目标对象的所有具体实现的访问。访问者模式的类图如下:访问者模式下有四类角色:(1)Element:被访问者抽象角色。声明接受访问者实例的accept接口,这个接口接收一个访问者实例,并声明实际的操作接口(2)…

more >>