摘要: 模板引擎,个人感觉是artTemplate在使用和性能上挺不错的,语法用的是原生的js语法,性能看官方的数据挺不错的。不过有个疑问就是:在编译模板的时候,是用正则匹配性能高,还是循环分词性能高,这个暂且不说,比较过才知道。artTemplate 是新一代 javascript 模板引擎,它在 v8 中的渲染效率可接近 javascript 性能极限,在 chrome 下渲染效率测试中分别是知名引擎 Mustache 与 micro tmpl 的 25 、 32 倍。引擎支持调试。若渲染中遇到错误,调试器可精确定位到产生异常的模板语句,让富UI应用开发变得得心应手。这一切都在 1.7kb(gzi 阅读全文
posted @ 2012-11-08 19:42 Lovesueee 阅读(2404) 评论(3) 推荐(5) 编辑
摘要: 这里是seajs loader的核心部分,有些IE兼容的部分还不是很明白,大虾路过的话,求教~主要是理解各个模块如何依赖有序加载,以及CMD规范。代码有点长,需要耐心看: 1 /** 2 * The core of loader 3 */ 4 ;(function(seajs, util, config) { 5 // 模块缓存 6 var cachedModules = {} 7 // 接口修改缓存 8 var cachedModifiers = {} 9 // 编译队列 10 var compileStack = [] 11 // 模块状态... 阅读全文
posted @ 2012-11-06 18:34 Lovesueee 阅读(1670) 评论(2) 推荐(1) 编辑
摘要: 数据缓存,jQuery现在支持两种:1. dom元素,数据存储在jQuery.cache中。2.普通js对象,数据存储在该对象中。以下是源代码: 1 var rbrace = /^(?:\{.*\}|\[.*\])$/, 2 rmultiDash = /([A-Z])/g; 3 4 // 首先是对jQuery对象自身的扩展 5 jQuery.extend({ 6 // 即jQuery.cache,负责存储dom元素的缓存数据 7 cache: {}, 8 9 // removeData时,缓存的数据被清除,返回的当时对应的id,以便再利用 ... 阅读全文
posted @ 2012-10-24 21:57 Lovesueee 阅读(3773) 评论(2) 推荐(6) 编辑
摘要: 首先来一张jQuery.Deferred的结构图:再来一张执行deferred.then(/*fnDone, fnFail, fnProcess*/)后的结构图:最后来看看源代码: 1 jQuery.extend({ 2 3 Deferred: function( func ) { 4 // 数据元组集 5 // 每个元组分别包含一些与当前deferred相关的信息: 6 // 分别是:触发回调函数列表执行(函数名),添加回调函数(函数名),回调函数列表(jQuery.Callbacks对象),deferred最终状态(第... 阅读全文
posted @ 2012-10-18 23:21 Lovesueee 阅读(3334) 评论(7) 推荐(1) 编辑
摘要: 来张jQuery结构图,方便大家整体了解: 阅读全文
posted @ 2012-10-18 17:36 Lovesueee 阅读(1584) 评论(6) 推荐(1) 编辑
摘要: 1 // String to Object options format cache 2 // 是对option的一个缓存,避免每次都要createOptions 3 // 每一个option类似这样 4 // { 5 // memory : true 6 // ,once : true 7 // ,... 8 // } 9 var optionsCache = {}; 10 11 // Convert String-formatted options into Object-formatted ones and store in cache 12... 阅读全文
posted @ 2012-10-18 17:24 Lovesueee 阅读(5186) 评论(3) 推荐(1) 编辑