[No.2] jQuery源码解析—搭建框架
Posted 烟雨风飘渺
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[No.2] jQuery源码解析—搭建框架相关的知识,希望对你有一定的参考价值。
接着,我们往后来看。从877-2856行,
都是完成一个功能,就是Sizzle。
Sizzle功能就是让一个复杂选择器的实现。
它是jQuery中比较难的一部分,
实现也比较复杂,它也是独立的。
然后,从2880-3042行,
Callbacks是jQuery中的回调对象,
它实现的功能主要就是通过
回调对象去管理函数,
(对函数的统一管理)。
为什么要统一管理?
因为在做开发的时候,
如果说函数特别多的时候,
我们管理起来就比较麻烦,
若是有一套很好的方式可以统一管理的话,
其实,操作起来就比较容易一些。
我们简单地来看看jQuery中是如何做的,
这就把它们统一的放到了一起,
除了这种添加方式,
比如说删除,
还有很多方法,到时具体说,
所以说这对函数的管理还是很有帮助。
接着,从3043-3183行,
它们实现的是Deferred,
延迟对象作用就是对异步的统一管理。
在JS中很多都是异步的,
比如:定时器,Ajax,等待DOM加载...
所以说在这些异步当中没有一个统一管理,
就会异步写得越多,越复杂,不容易管理。
但是,按照我们正常的逻辑思维,
应该是先写的先执行,
后写的后执行,
用延迟对象是这样来书写的。
在jQuery中这样去写,
就会先弹出1,再弹出2.
从而,我们可以发现在jQuery中,
延迟对象的做法是用回调去做的,
先去存,当上面那句话触发的时候,
然后,再去调存的这个函数,
所以说延迟的原理很简单。
接下来,我们往后来看,
从3184-3295行,它实现了support,
这叫做功能检测的方法。
什么是功能检测呢?
这个就是在我们之前去做浏览器判断时,
判断是什么浏览器,
执行什么不同的操作,
需要得到浏览器的信息,
判断它到底是哪个版本的。
这种对之前的开发都是可以的,
但是,现在随着网络的发展,
其实,浏览器更新速度是非常之快的,
版本变化得也是非常快,
所以说光是用来判断浏览器版本的话,
其实,对我们维护起来是非常不利的,
但是我们要是用来判断功能去判断浏览器,
这就比较靠谱了,
因为往后升级的浏览器它的功能会被保留的,
所以说这个功能检测是对浏览器发展是非常有用的。
以后,我们就不用判断浏览器了,
可以通过功能检测判断不同浏览器的版本。
这里,我找了一个叫checkOn功能检测讲讲。
其实在我们写的一个input的是复选或者单选框时,
大部分浏览器默认的value的是on,
然而,在老版本的WebKit下的浏览器,
它们默认的是空,
所以说我们要区分新老WebKit浏览器,
是不是就可以同过这个方法去判断了,
这一块儿,还有很多功能检测,
咱们到时候具体讲它的时候再给大家说,
先知道一下它是干嘛的,就可以了。
回看上一集:
别走开,下集更精彩。
喜欢文章的小伙伴,
希望大家多多转发分享,
你的分享就是我的动力!
以上是关于[No.2] jQuery源码解析—搭建框架的主要内容,如果未能解决你的问题,请参考以下文章