摘要: 前记------最近为了能够更好的搭建博客,看了开源博客引擎ghost源代码,顺道更深入的去了解express这个出名的nodejs web framework。所以接下来一段时间对expressjs做一个源码的解读和学习,能够更深刻的了解web server底层的一些东西,做到知其所以然。 学些什么------1. 对中间件这种思路的学习2. 对底层http server知识的学习,比如session等3. 对memcache,redis的认识4. ...结构图---今天晚上,花了点时间首先对express和connect的的代码粗过了一遍,对它们的结构以及联系进行了一定了解,下面就是它的. 阅读全文
posted @ 2014-01-15 01:18 Lovesueee 阅读(2105) 评论(4) 推荐(2) 编辑
摘要: 作为MVC框架,M(odel) V(iew) C(ontroler)之间的联系是必不可少的,今天要说的就是View(视图) 通常我们在写逻辑代码也好或者是在ui组件也好,都需要跟dom打交道,我们好讨厌在逻辑代码里面参杂dom的代码,特别是需要生产dom的代码, 因为这样的缺点: 1. 耦合,难于维 阅读全文
posted @ 2014-01-12 11:57 Lovesueee 阅读(772) 评论(0) 推荐(0) 编辑
摘要: 本来想把之前对artTemplate源码解析的注释放上来分享下,不过隔了一年,找不到了,只好把当时分析模板引擎原理后,自己尝试写下的模板引擎与大家分享下,留个纪念,记得当时还对比了好几个模板引擎来着。这里所说的js的模板引擎,用的是原生的javascript语法,所以很类似php的原生模板引擎。前端模板引擎的作用?1. 可以让前端开发更简单,不需要为了生成一个dom结构而使用+运算符去拼接字符串,而只需要一个元素的(里面的html模板),或者一个变量(存储着模板),或者 一个模板文件2. 易于维护,减少耦合,假使你的dom结构变化了,不需要更改逻辑代码,而只需要更改对应的模板(文件)3. 可. 阅读全文
posted @ 2014-01-10 12:31 Lovesueee 阅读(2169) 评论(4) 推荐(0) 编辑
摘要: 晚上躺在床上,继续完成对Backbone.Collection的源码解析。首先讲讲它用来干嘛?Backbone.Collection的实例表示一个集合,是很多model组成的,如果用model比喻成数据表中的row,那么collection就是那张数据表。在mvc单页面程序里面,我们不可能只用一条一条的数据,我们更需要多条数据的处理,并且能够统一的管理这多条数据,无论是网络请求还是前端交互。就好比前端有一个datagrid,很多row的数据,可以抽象成一个collection,row和collection之间就存在这联系,如果每一个row发生了变化,那么collection就需要知道这个变化, 阅读全文
posted @ 2014-01-10 00:30 Lovesueee 阅读(925) 评论(3) 推荐(2) 编辑
摘要: 现在,用回调处理一些复杂的逻辑,显得代码臃肿,难于阅读,特别是异步,嵌套。解决这样的问题,可以是之前所说的Backbone.Events的pubsub,或者是今天要说的when.js所实现的promise。在前端,jQuery的ajax全面改写就是为了引入promise这一套,为了使代码更流畅,更易于维护,事实上更容易实现复杂的需求。jQuery Deferred所实现的promise并不是那么的规范,功能也并不能么全,在前端可以很方便的使用就是了,那么在后端(nodejs),我推荐使用when.js,它的接口清晰,功能强大,架构更是很精妙,并且它在实现了完整的Promise A+后,又添加了 阅读全文
posted @ 2014-01-06 22:08 Lovesueee 阅读(2265) 评论(7) 推荐(6) 编辑
摘要: 趁热打铁,将Backbone.Model的源代码注释也发出来。Model是用来干嘛的?写过mvc的同学应该都知道,说白了就是model实例用来存储数据表中的一行数据(row)Backbone利用model的attributes与数据库的字段一一对应,通过ajax获取数据后,在前端进行存储,又提供了一系列的方法,在改变model实例的同时,完成关联视图view的更新,和服务器端数据的更新,从而达到mvc的效果。下面就是Backbone.Model的源码注释了,如果错误了还望指出来,或者不清晰,可以给我留言 1 // Backbone.Model 2 // --------------... 阅读全文
posted @ 2014-01-02 16:29 Lovesueee 阅读(1031) 评论(5) 推荐(2) 编辑
摘要: 最近在看些node的源代码,发现backbone的应用还是挺广泛的,但是之前的学习忘得一干二净了,后悔当时没做笔记啊。所以,无奈想用的更好,就是得把源代码看楚,所以还是把源代码的注释笔记留下来,供自己备忘,也供新手学习。首先这里是Backbone.Events的实现代码注释,这是backbone的实现mvc的主要保障之一,这种基于事件的机制无论是在前端还是在后端nodejs部分都有着很广的作用,更何况nodejs的异步机制更需要它来处理一些逻辑问题(当然有人会说promise会比你这种pubsub更适合异步,哈,我只是像表明事件机制的重要性嘛)下面是对代码的注释,如果有错误还望指出来 1 .. 阅读全文
posted @ 2014-01-01 23:56 Lovesueee 阅读(982) 评论(1) 推荐(1) 编辑
摘要: 周末的时候写了一个图片轮播的jQuery插件,今天应产品的需求,又改进了些,所以写了两个版本slideshow.js和slideshow_v2.js;代码中提供两个接口: 1. jQuery接口 2. CMD接口(相当于返回一个构造器),对外暴露包装后的public api(下面功能中说到)那么实现的功能: 1,基本的的轮播功能:向前(prev),向后(next),第一张(first),最后一张(last),指定图片索引(jumpto),向前(后)自动播放(play),停止播放(stop) 2. 关于图片的请求做了一些处理,每一个slideshow的大小都是通过参数自定义生成的,那么对... 阅读全文
posted @ 2012-12-11 22:56 Lovesueee 阅读(3661) 评论(6) 推荐(0) 编辑
摘要: 最近看了一下backbone的源代码,总的来说,对于MVC而言,写的真的挺不错的,但是如果说企业应用呢?个人觉得维护成本比较高。源码主要是是写了类,Model,View,Collection,Router,通过继承这些类,实现自己的应用需求,所以说对于继承这块,我将源代码解析出来。1 Model.extend = Collection.extend = Router.extend = View.extend = extend;依旧看一下结构图:图中红色图块的child是继承后的子类(是一个构造器function),parent为父类(如:Backbone.Model),Surrogate为中. 阅读全文
posted @ 2012-11-27 15:57 Lovesueee 阅读(1289) 评论(1) 推荐(1) 编辑
摘要: 本片随笔主要是分析了下jQuery的事件模型,即如何统一事件对象,以及处理过程。这里简要说明一下几点:jQuery通过统一的方法(第62行),eventHandle函数进行事件的分发,利用jQuery.Event统一修正了浏览器的event对象,注册事件处理器时,也是注册eventHandle,然后统一将相关的事件信息,存储在与dom相联系的jQuery.cache缓存中,如下图:值得注意的还有事件代理和trigger的实现:(1)事件代理是个很不错的想法,利用了事件冒泡,在父元素上绑定事件,jQuery通过selector与事件处理器handle的selector进行匹配,从而达到代理的作用 阅读全文
posted @ 2012-11-20 11:39 Lovesueee 阅读(2100) 评论(2) 推荐(4) 编辑