jquery源码分析.pdf

所需积分/C币:10 2017-06-26 21:12:43 734KB PDF
4
收藏 收藏
举报

jquery源码分析.pdf
源码分析 版权所有 题,许会对 的 等操作也不含糊,但是对于 等几人主流的浏览器的兼容足够让每一个高手头疼 这是使用类库的主要原因。类库只要用得恰当的话,也不一定比直接 米用 的原始函数和对象的运行效率低。但是其却能极人地提高开发的 效率。 自从 采用符号做为 的缩写,符号似乎 成了忄找元素的代理符号。但是这种简单的找并不能满足应用的需要 很多时间我们需要像 那样查找元素。 从这里出发,采用符号做为查找元素的代理。它不再是那种简单的 ,而是功能强大的 的选择器。这也就是的木意 解决了查找的元素的仁务,之后就是对元素的操作 抛弃了 屮那么对 等原生对 象的扩展。把所有的心思都放在解决实际问题的元素的操作上。它不仅简 化元素原生的冗长名字的函数名和众多难记的方法,而且在简化这些方法 的同时提供了更为便捷且兼容浏览器的功能。同时那些实用的功能一个都没少, 的操作应有仅有 中 等众多的对象不但让人觉得烦琐难记,而且让人感 觉有点畏惧感。 在设计时就考虑到这一点。它提供了统一的入口,就是 个对象: 对象()。所有的操作,变化都是针对这个对象。 现在可能给 个明确的解释: 实质就是一个查询器。在查询 器的基础还提供对查找到的元素进行操作的功能。这样说米 就是查询和 操作的统一。査询是入口,操作是结果 对象在代码分成两大部分,一部分是 的静态方法,也可以称 作实用方法或工具方法,通过 命名空间直接引用。第二部 分是 的实例方法,通过 或来生成 实例,然后通过 这个实例来引用的方法。这部分的方法人多数是从采用静态方法代理来完成功 能。真正的功能性的操作都在 的静态方法中实现。 这些功能细分起来,可以分成以下儿个部分: 查找元素。这个找不但包含基于 的 功能,还包含其对直接引用或间接引用元素而扩展的一些功能 元素的属性操作 元素可以看作的标签,对于属性的操 作就是对于标签的属性进行操作。这个属性操作包含增加,修改,删除, 取值等 元素的操作。是控制页面的显示的效果。对的操作 作者:彭仁夔 源码分析 版权所有 那就得包含高度,宽度, 等这些常用的的功能。 的操作。的功能就是异步从服务器取数据然后进行相关操作。 的操作。对的兼容做了统一的处理 动画的操作。可以看作是样式上的扩展。 对象的构建 上一节分析了从整体上分析了 的原理,从其原理可以看出,其统 的入口就是对象。那么这个对象是如何生成的呢?上一节还提到了 的实质是,那么生成 对象就可能看作是构建并运行一个查询器 既然是查询,肯定会有查找到的结果(元素),那么这些结果又存放在 哪里呢?最好的地方当然是 对象内面。查询的结果可能是单个元素,也 可能是集合如 也就是说 对象内面应该有一个集合。且这个集合是用来存放查询到 元素。但 对象是所有操作的统一入口,那么它的构建就不应只局限 于从文档树中查询到 心素,有可能是从别的集合中转移过来的 元素,或是的片断生成的 文档中提供了四种构建方式: 。其中 可以用代替。这 四种方式是经常用到。其实 的参数可以是任何的元素。也就是说任何的 参数都可以构建对象。举几个例子 可以看出其参数可以是 对象或 的集合。 是 的简写。 会把放到 对象中集合中。 对于如这样的其中元素(如 集合的元素)不是元素,最 好不要构建 对象, 对象的方法设计的目的都是针对于对象的 而进行的操作。如果不清楚其使用的话,很有可能会导致错误。 上面讲了这么多大道理,现在从源码的角度细细分析 通过 的调用实现没有生成对象,它的是指向 对象的。 那么 的那些实例方法是怎样继承过米的呢?看一下 作者:彭仁夔 源码分析 版权所有 这是 的总入口, 对象不是通过 来继承其 中的方法,而是 函数生成的对象 这里我们可以看出对于 添加一些函数集的对象的意义不大。 还是可以的,但是生成的 对象在 时会被抛弃。故不要 用 来构建 对象。 对象其实就是 对象。那么 就是 挂着 对象的操作方法。如 有时间可能会担心在 行就实现了把 中的函数放刭 上去,那么之后的通过 的方法怎么办呢? 这里是对 的引用。在扩展 的时候,只要把相关的数 就可以了 现在我们看 是怎么完成工作的: 确定 存在 第一种情况 单个元素,忽略上下文 为 第二种情况处理 第一种情况: 处理 会返回 的元素,如果是这样,就 构建一个新的 第四种情况:处理 作者:彭仁夔 源码分析 版权所有 第五种情况:处理 七 第六种情况:处理 负责对传进来的参数进行分析然后生成 对象。它的第一 个参数一般来说是必须的(为空的话,就是默认的 )。从源码的角度第 一个参数有着如下四种类型 类型 说明 第一个参数为元素,第二个参数不用。直接把元素 存在新生成的 对象的集合中。返回这个 对象。构建 对象完成。 第一个参数为有三种情况: 的标签字符串, ,第二个参数可选 执行 该语句是把 的字符串转换成对象的数组。接着执行类 型的返回。 、字符串为时 首先通过 取 得,如没有取到 转到执行 类犁的返回 空集合 对象。 如找到 通过 再次生成 对象, 这次是 类型的 对象的返回。 兼容 语法的 字符串,第二个参数是可选的。 执行 。该语句先执行 可以看出 第二参数可以是任意的值, 可以是集合形式。之后就通过 找到 中所有元素都满足 表达式的 元素的集合,构建新的 对象,并返回。 其实和这种方式是统一的,单独出来是为了提高性能。 作者:彭仁夔 源码分析 版权所有 第一参数是函数。第二个参数不用。是 的 简写,其 是其执行的代码。这个语句首先执行 ,它再一次 函数生成 象(元素为 )。再调用这个对象的 方法。 返回当前对象。而上面的语句又是返回这个 的返回对象。 可见这个返回是 的对象。抛夼了第一次生成的 对象。 第一参数是除上面提到元素,函数, 所有其它的类 。可以为空如。第二个参数不用。 它首先是把第一个参数转换数组。 可以是 的 集合,如 对象,如 返回的元素集合 等,可能支持 还可能是单个任意的对象。 转换成标准的数组之后,执行 把这个数组中的元素 全部存到当前 对象的集合中。之后返回当前的 对象。 其实 完全可能综合在这里面,单独拿起来为了提 性能 从上面的代码和上表中,我们也可以看出构建对象就是往 对象 的集合中添加元素(一般都应该是元素)。添加的元素有两种形式: 是单个元素,可能通过直接的元素的传参形式,还可以通过从 文档屮找元素。 二是集合,如 对象,还有数组,还有通过 找到的 集合等 上表仅仅是分析传入的参数的类型,它是怎么做呢?在⑤处它实现 的兼容的 的查寻器的功能通过 来进行分析 并查找到符合传入的 语法的文档树中的元素集 合。 作者:彭仁夔 源码分析 版权所有 在④处,它实现了把的字符串转换成元素节点的集合。这个是通 过 来实现的 在⑧处,它实现 对象的统一入口,我们可以通过 要注册 的监听函数。所有的调用 实现的功能代码都应该在 之后才运行。是所有的应用开发中的功能代码的入口。它支持仟 意多的注册。其是通过 来完成的。 找到元素之后就是构建集合了,在⑨处就是通过 米构建 对象内部的集合。 构建 的 元素 在 函数中,最终的结果是把元素存放到 对象中的 集合内面。根据上一节,我们可以传入单个元素或集合直接将其存入 对象的集合 如果其第一个参数是类型的话如,那么就得到文档树去查找。 对于片断的 类型就得生成元素。如果再进一步分析,那些传入 元素(集)的参数从哪里来呢?它们可以通过元素的直接或间接引用 方式得到。 这一部分首先分析如何从的片断就得生成元素然后分析 是如何通过直接或间接的方式在在树中找到元素,第三就是分析基于 的 3.1生成Dom元素 函数中通过 来实现把片断 转换成元素,这是一个静态方法 转换成元素 多个 的数组 默认的上卜文是 在中 行不通,因为它返回对象类型 这里支持 为 对象,取第一个元素 作者:彭仁夔 源码分析 版权所有 把转换成 的最高效的方法 为 等时返回 转换为元素 修正 标签,对于如 的形式修改为 但是对于 不修改。 去空格,否则 可能会出不能正常工作 在上下文中创建了一个元素 有些标签必须是有一些约束的,比如 必须在 中间 下面的代码在大部分是对 中子元素进行修正。数组中第一个元素为深度 在开始的位置上( 就返回后面的数组,这是对 的约束 必须在 内部 必须在 内部 在 中间 在中间 在 中间 不能串行化? 默认不修正 包裹之后,采用 转换成 作者:彭仁夔 源码分析 版权所有 转到正确的深度对于 去掉对 自动插入的 第一种情况 开头但没有 在中生成的元素中可能会自动 加的 第二种情况: 为 那 不一定是 也有可能是 等等 除去 使用 会去开头的空格节点的加上去掉的空格节点 从字符转换成了数组 采用因为 都有 属性。这里主要是为了 进 行下面的 处理。对于其它的 的也根本就不要加入到中。 不是(类)数组的形式的元素,或是元素或是 元素(这两个可以看作类数组) 对」 是 的集合 上面的中把有效的元素都加入到,现在只要返回就得到转換的元素数组 在上面的代码中,我们可以看出对于 的参数的支持是多种形 式的, 可以为(类)数组的形式,还可以采用对象的形式。数组中的元素 作者:彭仁夔

...展开详情
试读 107P jquery源码分析.pdf
立即下载
限时抽奖 低至0.43元/次
身份认证后 购VIP低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
  • GitHub

  • 脉脉勋章

  • 签到新秀

  • 分享王者

关注 私信
上传资源赚钱or赚积分
最新推荐
jquery源码分析.pdf 10积分/C币 立即下载
1/107
jquery源码分析.pdf第1页
jquery源码分析.pdf第2页
jquery源码分析.pdf第3页
jquery源码分析.pdf第4页
jquery源码分析.pdf第5页
jquery源码分析.pdf第6页
jquery源码分析.pdf第7页
jquery源码分析.pdf第8页
jquery源码分析.pdf第9页
jquery源码分析.pdf第10页
jquery源码分析.pdf第11页
jquery源码分析.pdf第12页
jquery源码分析.pdf第13页
jquery源码分析.pdf第14页
jquery源码分析.pdf第15页
jquery源码分析.pdf第16页
jquery源码分析.pdf第17页
jquery源码分析.pdf第18页
jquery源码分析.pdf第19页
jquery源码分析.pdf第20页

试读结束, 可继续阅读

10积分/C币 立即下载