美文网首页
[No.2] jQuery源码解析—搭建框架(2)

[No.2] jQuery源码解析—搭建框架(2)

作者: web_无笙 | 来源:发表于2017-11-10 20:36 被阅读0次

    接着,我们往后来看。从877-2856行,

    都是完成一个功能,就是Sizzle

    Sizzle功能就是让一个复杂选择器的实现。

    它是jQuery中比较难的一部分,

    实现也比较复杂,它也是独立的。


    然后,从2880-3042行,

    CallbacksjQuery中的回调对象,

    它实现的功能主要就是通过

    回调对象去管理函数,

    (对函数的统一管理)。

    为什么要统一管理?

    因为在做开发的时候,

    如果说函数特别多的时候,

    我们管理起来就比较麻烦,

    若是有一套很好的方式可以统一管理的话,

    其实,操作起来就比较容易一些。

    我们简单地来看看jQuery中是如何做的,

    这就把它们统一的放到了一起,

    除了这种添加方式,

    比如说删除,

    还有很多方法,到时具体说,

    所以说这对函数的管理还是很有帮助。

    接着,从3043-3183行,

    它们实现的是Deferred

    延迟对象作用就是对异步的统一管理。

    JS中很多都是异步的,

    比如:定时器,Ajax,等待DOM加载...

    所以说在这些异步当中没有一个统一管理,

    就会异步写得越多,越复杂,不容易管理。

    但是,按照我们正常的逻辑思维,

    应该是先写的先执行,

    后写的后执行,

    用延迟对象是这样来书写的。

    jQuery中这样去写,

    就会先弹出1,再弹出2.

    从而,我们可以发现在jQuery中,

    延迟对象的做法是用回调去做的,

    先去存,当上面那句话触发的时候,

    然后,再去调存的这个函数,

    所以说延迟的原理很简单。


    接下来,我们往后来看,

    从3184-3295行,它实现了support

    这叫做功能检测的方法。

    什么是功能检测呢?

    这个就是在我们之前去做浏览器判断时,

    判断是什么浏览器,

    执行什么不同的操作,

    需要得到浏览器的信息,

    判断它到底是哪个版本的。

    这种对之前的开发都是可以的,

    但是,现在随着网络的发展,

    其实,浏览器更新速度是非常之快的,

    版本变化得也是非常快,

    所以说光是用来判断浏览器版本的话,

    其实,对我们维护起来是非常不利的,

    但是我们要是用来判断功能去判断浏览器,

    这就比较靠谱了,

    因为往后升级的浏览器它的功能会被保留的,

    所以说这个功能检测是对浏览器发展是非常有用的。

    以后,我们就不用判断浏览器了,

    可以通过功能检测判断不同浏览器的版本。

    这里,我找了一个叫checkOn功能检测讲讲。

    其实在我们写的一个input的是复选或者单选框时,

    大部分浏览器默认的value的是on

    然而,在老版本的WebKit下的浏览器,

    它们默认的是空,

    所以说我们要区分新老WebKit浏览器,

    是不是就可以同过这个方法去判断了,

    这一块儿,还有很多功能检测,

    咱们到时候具体讲它的时候再给大家说,

    先知道一下它是干嘛的,就可以了。


    回看上一集:

    原文中此处为链接,暂不支持采集

    别走开,下集更精彩。

    喜欢文章的小伙伴,

    希望大家多多转发分享,

    你的分享就是我的动力!

    喜欢 分享 or

    相关文章

      网友评论

          本文标题:[No.2] jQuery源码解析—搭建框架(2)

          本文链接:https://www.haomeiwen.com/subject/axeimxtx.html