jQuery 2.0.3 源码分析 回调对象 - Callbacks
摘要:源码API:http://api.jquery.com/jQuery.Callbacks/jQuery.Callbacks()是在版本1.7中新加入的。它是一个多用途的回调函数列表对象,提供了一种强大的方法来管理回调函数队列。那么jQuery.Callbacks使用场景在哪里?在很多时候需要控制一系列的函数顺序执行。那么一般就需要一个队列函数来处理这个问题我们看一段代码function Aaron(List, callback) { setTimeout(function() { var task = List.shift(); task(); //执行函数 ...
阅读全文
posted @
2013-09-27 15:29
【艾伦】
阅读(21091)
推荐(53) 编辑
jQuery 2.0.3 源码分析Sizzle引擎 - 高效查询
摘要:为什么Sizzle很高效?首先,从处理流程上理解,它总是先使用最高效的原生方法来做处理HTML文档一共有这么四个API:getElementById 上下文只能是HTML文档 浏览器支持情况:IE 6+, Firefox 3+, Safari 3+, Chrome 4+, and Opera 10+;getElementsByName,上下文只能是HTML文档浏览器支持情况:IE 6+, Firefox 3+, Safari 3+,Chrome 4+, and Opera 10+;getElementsByClassName浏览器支持情况:IE 9+, Firefox 3+, Safari4+
阅读全文
posted @
2013-09-24 21:41
【艾伦】
阅读(8257)
推荐(16) 编辑
jQuery 2.0.3 源码分析Sizzle引擎 - 超级匹配
摘要:声明:本文为原创文章,如需转载,请注明来源并保留原文链接Aaron,谢谢!通过Expr.find[ type ]我们找出选择器最右边的最终seed种子合集通过Sizzle.compile函数编译器,我们把tokenize词法元素编译成闭包函数超级匹配superMatcher,用佳的方式从seed种子集合筛选出需要的数据也就是通过seed与compile的匹配,得出最终的结果了superMatcher 函数 这个方法并不是一个直接定义的方法,通过matcherFromGroupMatchers( elementMatchers, setMatchers )方法return出来的一个curry化的
阅读全文
posted @
2013-09-22 19:14
【艾伦】
阅读(6333)
推荐(37) 编辑
jQuery 2.0.3 源码分析Sizzle引擎 - 编译函数(大篇幅)
摘要:声明:本文为原创文章,如需转载,请注明来源并保留原文链接Aaron,谢谢!从Sizzle1.8开始,这是Sizzle的分界线了,引入了编译函数机制网上基本没有资料细说这个东东的,sizzle引入这个实现主要的作用是分词的筛选,提高逐个匹配的效率我们不直接看代码的实现,通过简单的实现描述下原理:以下是个人的理解,如果有错误欢迎指出!Javascript有预编译与我们说的编译函数是不同的概念什么是JavaScript的“预编译”?function Aaron() { alert("hello");};Aaron(); //这里调用Aaron,输出world而不是hellofun
阅读全文
posted @
2013-09-15 16:08
【艾伦】
阅读(13144)
推荐(108) 编辑
jQuery 2.0.3 源码分析Sizzle引擎 - 解析原理
摘要:声明:本文为原创文章,如需转载,请注明来源并保留原文链接Aaron,谢谢!先来回答博友的提问:如何解析div > p + div.aaron input[type="checkbox"]顺便在深入理解下解析的原理:HTML结构 Sizzle 选择器语句div > p + div.aaron input[type="checkbox"]组合后的意思大概就是:1. 选择父元素为 元素的所有子元素 元素2. 选择紧接在 元素之后的所有 并且class="aaron " 的所有元素3. 之后选择 div.aaron 元素内部的所有
阅读全文
posted @
2013-09-10 08:34
【艾伦】
阅读(12566)
推荐(35) 编辑
jQuery 2.0.3 源码分析Sizzle引擎 - 词法解析
摘要:声明:本文为原创文章,如需转载,请注明来源并保留原文链接Aaron,谢谢!浏览器从下载文档到显示页面的过程是个复杂的过程,这里包含了重绘和重排。各家浏览器引擎的工作原理略有差别,但也有一定规则。简单讲,通常在文档初次加载时,浏览器引擎会解析HTML文档来构建DOM树,之后根据DOM元素的几何属性构建...
阅读全文
posted @
2013-09-05 11:58
【艾伦】
阅读(26710)
推荐(58) 编辑
jQuery 2.0.3 源码分析core - 选择器
摘要:声明:本文为原创文章,如需转载,请注明来源并保留原文链接Aaron,谢谢! 打开jQuery源码,一眼看去到处都充斥着正则表达式,jQuery框架的基础就是查询了,查询文档元素对象,所以狭隘的说呢,jQuery就是一个选择器,并这个基础上构建和运行查询过滤器! 工欲善其事,必先利其器,所以先从正则入手我们来分解一个表达式 // A simple way to check ...
阅读全文
posted @
2013-08-26 22:26
【艾伦】
阅读(43187)
推荐(81) 编辑
jQuery源码分析系列
摘要:声明:本文为原创文章,如需转载,请注明来源并保留原文链接Aaron,谢谢!版本截止到2013.8.24 jQuery官方发布最新的的2.0.3为准附上每一章的源码注释分析 :https://github.com/JsAaron/jQuery正在编写的书 -jQuery架构设计与实现本人在慕课网的教程...
阅读全文
posted @
2013-08-24 14:52
【艾伦】
阅读(197379)
推荐(254) 编辑
jQuery 2.0.3 源码分析core - 整体架构
摘要:拜读一个开源框架,最想学到的就是设计的思想和实现的技巧。废话不多说,jquery这么多年了分析都写烂了,老早以前就拜读过,不过这几年都是做移动端,一直御用zepto, 最近抽出点时间把jquery又给扫一遍我也不会照本宣科的翻译源码,结合自己的实际经验一起拜读吧!github上最新是jquery-master,加入了AMD规范了,我就以官方最新2.0.3为准整体架构jQuery框架的核心就是从HTML文档中匹配元素并对其执行操作、例如:$().find().css()$().hide().html('....').hide().从上面的写法上至少可以发现2个问题1. jQuer
阅读全文
posted @
2013-08-23 21:34
【艾伦】
阅读(99461)
推荐(248) 编辑