您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 国内外标准规范 > jQuery源码分析系列
jQuery源码分析系列作者:nuysoft做最棒的软件开发交流社区第1/152页15AJAX-类型转换器16动画分析和扩展Effects17尺寸和大小Dimensions&Offset页目录1.JavaScript1.1[原创]jQuery源码分析系列目录(持续更新)...........................................41.2[原创]jQuery源码分析-00前言开光....................................................61.3[原创]jQuery源码分析-01总体架构....................................................81.4[原创]jQuery源码分析-03构造jQuery对象-源码结构和核心函数...........................121.5[原创]jQuery源码分析-03构造jQuery对象-工具函数....................................211.6[原创]jQuery源码分析-05异步队列Deferred..........................................491.7[原创]jQuery源码分析-08队列Queue................................................701.8[原创]jQuery源码分析-09属性操作...................................................901.9[原创]jQuery源码分析-10事件处理-Event-概述和基础知识..............................1021.10[原创]jQuery源码分析-15AJAX-前置过滤器和请求分发器..............................1071.11[原创]jQuery源码分析-15AJAX-类型转换器.........................................1301.12[原创]jQuery源码分析-16动画分析和扩展Effects.....................................1431.13[原创]jQuery源码分析-17尺寸和大小Dimensions&Offset............................1491.14[原创]jQuery源码分析-如何做jQuery源码分析.......................................152页1.1[原创]jQuery源码分析系列目录(持续更新)发表时间:2011-10-12关键字:javascript,jquery,源码分析作者:nuysoft/高云 QQ:47214707 EMail:nuysoft@gmail.com声明:本文为原创文章,如需转载,请注明来源并保留原文链接。[原创]jQuery源码分析(版本1.6.1)00前言开光01总体架构03构造jQuery对象-源码结构和核心函数03构造jQuery对象-工具函数05异步队列Deferred06浏览器测试-Supportnew07数据缓存-Cachenew08队列Queue09属性操作10事件处理-Event-概述和基础知识10事件处理-Event-源码结构new10事件处理-Event-事件绑定与删除-bind/unbind+live/die+delegat/undelegatenew10事件处理-Event-DOM-readynew15AJAX-前置过滤器和请求分发器jQuery.ajaxPrefilterprefilters,jQuery.ajaxTransporttransports15AJAX-类型转换器ajaxConvertconverters16动画分析和扩展Effects17尺寸和大小Dimensions&Offset附录:如何做jQuery源码分析Java工程师应该向jQuery学习的8点建议newjQuery中的循环技巧newTODO:02正则表达式-RegularExpression04工具函数Utilities11选择器Sizzle12DOM遍历Traversing13DOM操作Manipulation[原创]jQuery源码分析系列目录(持续更新)第4/152页14CSS操作CSS[原创]jQuery源码分析系列目录(持续更新)第5/152页1.2[原创]jQuery源码分析-00前言开光发表时间:2011-09-21关键字:javascript,jquery,源码jQuery源码分析-前言jQuery凭借简洁的语法和跨平台的兼容性,极大地简化了JavaScript开发开发人员遍历HTML文档、操作DOM、处理事件、执行动画和开发Ajax的操作。其独特而又优雅的代码风格改变了JavaScript程序员的设计思路和编写程序的方式。---摘自《锋利的jQuery》通过分析jQuery的源码,我们能(这也是本文的写作目的):l学习先进的设计理念l学习各种实现技巧l巩固JavaScript基础l无限的接近这些牛人↓↓↓(记住他们吧,记住他们改变了JavaScript)jQuery团队核心人物JohnResig://brandonaaron.net/JornZaefferer://nuysoft.iteye.com1.2[原创]jQuery源码分析-00前言开光第6/152页[原创]jQuery源码分析-00前言开光第7/152页1.3[原创]jQuery源码分析-01总体架构发表时间:2011-09-21关键字:web,javascript,jquery,源码,总体架构1.总体架构1.1自调用匿名函数self-invokinganonymousfunction打开jQuery源码,首先你会看到这样的代码结构:(function(window,undefined){//jquerycode})(window);1.这是一个自调用匿名函数。什么东东呢?在第一个括号内,创建一个匿名函数;第二个括号,立即执行2.为什么要创建这样一个“自调用匿名函数”呢?通过定义一个匿名函数,创建了一个“私有”的命名空间,该命名空间的变量和方法,不会破坏全局的命名空间。这点非常有用也是一个JS框架必须支持的功能,jQuery被应用在成千上万的JavaScript程序中,必须确保jQuery创建的变量不能和导入他的程序所使用的变量发生冲突。3.匿名函数从语法上叫函数直接量,JavaScript语法需要包围匿名函数的括号,事实上自调用匿名函数有两种写法(注意标红了的右括号):(function(){console.info(this);console.info(arguments);}(window));(function(){console.info(this);console.info(arguments);})(window);4.为什么要传入window呢?通过传入window变量,使得window由全局变量变为局部变量,当在jQuery代码块中访问window时,不需要将作用域链回退到顶层作用域,这样可以更快的访问window;这还不是关键所在,更重要的是,将window作为参数传入,可以在压缩代码时进行优化,看看jquery-1.6.1.min.js:[原创]jQuery源码分析-01总体架构第8/152页(function(a,b){})(window);//window被优化为a5.为什么要在在参数列表中增加undefined呢?在自调用匿名函数的作用域内,确保undefined是真的未定义。因为undefined能够被重写,赋予新的值。undefined=nowit'sdefined;alert(undefined);浏览器测试结果:浏览器测试结果结论ienowit'sdefined可以改变firefoxundefined不能改变chromenowit'sdefined可以改变operanowit'sdefined可以改变6.注意到源码最后的分号了吗?分号是可选的,但省略分号并不是一个好的编程习惯;为了更好的兼容性和健壮性,请在每行代码后加上分号并养成习惯。1.2总体架构接下来看看在自调用匿名函数中都实现了什么功能,按照代码顺序排列:(function(window,undefined){//构造jQuery对象[原创]jQuery源码分析-01总体架构第9/152页varjQuery=function(selector,context){returnnewjQuery.fn.init(selector,context,rootjQuery);}//工具函数Utilities//异步队列Deferred//浏览器测试Support//数据缓存Data//队列queue//属性操作Attribute//事件处理Event//选择器Sizzle//DOM遍历//DOM操作//CSS操作//异步请求Ajax//动画FX//坐标和大小window.jQuery=window.$=jQuery;})(window);从上边的注释看,jQuery的源码结构相当清晰、条理,不像代码那般晦涩和让人纠结。后边的章节基本将以这个顺序展开。[原创]jQuery源码分析-01总体架构第10/152页1.3下节预告如果你看过jQuery源码,很快就会发现这里到处充斥着正则表达式,而很多JavaScript开发人员又疏于正则基础知识,为了扫清这个障碍,下一章将先温习JavaScript正则表达式的基础知识,再详细剖析jQuery中的正则表达式。在正式开始分析源码之前,还有没有要准备的基础知识呢?当然有。比如JavaScriptAPI中的类和对象,如果你不熟练的话,至少手头要有一本参考手册。除了正则,其他的知识点会在分析过程中穿插讲解,不计划辟出新的章节。[原创]jQuery源码分析-01总体架构第11/152页1.4[原创]jQuery源码分析-03构造jQuery对象-源码结构和核心函数发表时间:2011-09-28关键字:web,javascript,jquery,构造jquery对象,源码结构和核心函数作者:nuysoft/高云 QQ:47214707 EMail:nuysoft@gmail.com毕竟是边读边写,不对的地方请告诉我,多多交流共同进步。本章还未写完,完了会提交PDF。前记:想系统的好好写写,但是会先从感兴趣的部分开始。近期有读者把PDF传到了百度文库上,首先感谢转载和传播,但是据为已有并设置了挺高的财富值才能下载就不好了,以后我整理好了会传到文库上。请体谅一下
本文标题:jQuery源码分析系列
链接地址:https://www.777doc.com/doc-5839881 .html