
Jquery源码阅读
u010585120
这个作者很懒,什么都没留下…
展开
-
jquery源码阅读----立即调用表达式
任何库与框架设计的第一个要点就是解决命名空间和变量污染问题。jquery就是利用了js函数作用域的特性,采用立即调用表达式包裹了自身的方法解决这个问题。(function(window,undefined){ var jquery = function(){}; window.jquery=window.$ = jquery;})(window)从上面的代码可以看出,自动初始转载 2016-09-12 10:30:56 · 292 阅读 · 0 评论 -
css解析原理
转载自:http://www.imooc.com/code/4570CSS的解析原理在开始前,我们必须了解一个真相:为什么排版引擎解析 CSS 选择器时一定要从右往左析? 1.HTML 经过解析生成 DOM Tree(这个我们比较熟悉);而在 CSS 解析完毕后,需要将解析的结果与 DOM Tree 的内容一起进行分析建立一棵 Render Tree,最终用来进行绘转载 2016-09-29 16:48:12 · 681 阅读 · 0 评论 -
jQuery源码解析-----Deferred是什么?
Deferred是什么?前端项目的开发,不仅仅涉及到同步的概念,而且还会经常穿插各种异步的处理。一些大的操作,比如远程获取数据,操作一个大数据处理,这时候是不能马上获取到数据的。假设我们发送一个AJAX请求到接受到数据需要10秒钟,那么从发送到接受数据这个时间段中,前端的处理时间其实是空闲,但是对于开发者来说这种时间是不能浪费了,所以我们可以在10秒钟做很多同步的处理,同时等待异步转载 2016-09-22 10:05:34 · 525 阅读 · 0 评论 -
jQuery源码分析----Data类设计
转载自:http://www.imooc.com/code/3464Data类的设计我们看看Data类是如何构建这个缓存池的:(1)先在jQuery内部创建一个cache对象{}, 来保存缓存数据。 然后往需要进行缓存的DOM节点上扩展一个值为expando的属性function Data() { Object.defineProperty(th转载 2016-09-20 16:20:58 · 391 阅读 · 0 评论 -
jQuery源码解析-----jQuery数据缓存系统
//jQuery缓存系统静态方法与实例方法的区别jQuery.data(ele)与$(ele).data()这两个函数都是用来在元素上存放数据,也就是平时所说的数据缓存,都返回jQuery对象,初学的时候很容易让人混淆,尤其是给dom元素添加缓存数据的时候。简单的来说:1.jQuery.data()可以实现为dom元素或js对象添加缓存2.$("ele").data()实是对前转载 2016-09-20 14:23:44 · 377 阅读 · 0 评论 -
jQuery源码解析----回调函数"memory"场景的实现
//memory的设计memory:包吃以前的值,将添加到这个列表的后面的最新的值立即执行调用任何回调。回调函数是从异步队列Deferred分离出来的,所以很多的接口设计是为了契合Deferred接口,memory用的很多,这个缓存的设计这里提及一下主要是用来实现Deferred的异步收集与pipe管道风格的数据传递的,具体在Deferred有详解,这里大概了解一下作用范围。memor转载 2016-09-20 10:50:47 · 391 阅读 · 0 评论 -
jQuery源码解析---jQuery回调模块的结构
jQuery回调模块结构整个$.Callbacks的源码很少,它是一个工厂函数,使用函数调用(非new,它不是一个类)创建对象,它有一个可选参数flags用来设置回调函数的行为,对外的接口也就是self的返回。jQuery.Callbacks()的API列表如下:callbacks.add() :回调列表中添加一个回调或回调的集合。callbacks转载 2016-09-19 17:44:46 · 320 阅读 · 0 评论 -
JQuery源码解析---jQuery回调对象
//jquery回调对象jquery.Callbacks一般开发者接触的很少的,虽然jQuery开发者提供了外部接口调用,但是$.Callbacks()模块的开发目的是为了给内部$.ajax()和$.Deferred()模板提供统一的基本功能组件。它可以用来作为类似基础定义的新组件的功能。jQuery.Callbacks是jquery在1.7版本之后加入的,是从1.6版本中的_Defe原创 2016-09-19 15:16:51 · 403 阅读 · 0 评论 -
jquery源码解析---理解观察者模式
理解观察者模式讲解jQuery回调对象之前,我们有必要先理解其背后的设计思想 - “观察者模式”。观察者模式 (pub/sub) 的背后,总的想法是在应用程序中增强松耦合性。并非是在其它对象的方法上的单个对象调用。一个对象作为特定任务或是另一对象的活动的观察者,并且在这个任务或活动发生时,通知观察者。观察者也被叫作订阅者(Subscriber),它指向被观察的对象,既被观察转载 2016-09-19 11:54:10 · 909 阅读 · 0 评论 -
Jquery源码解析---利用队列来实现函数的顺序执行
//利用队列来实现函数的顺序执行function test(list,callback){ var task; task = list.shift(); if(task){ task(); } if(list.length > 0){ arguments.callee(list,callback); }else{ callback(); }}var list原创 2016-09-19 11:23:34 · 1930 阅读 · 0 评论 -
jquery源码解析----each迭代器
jQuery的each迭代器jQuery的each方法从使用上就要分2种情况:☑ $.each()函数☑ $(selector).each()$.each()函数和$(selector).each()是不一样的,后者是专门用来遍历一个jQuery对象的,是为jQuery内部服务的。$.each()函数可用于迭代任何集合,无论是“名/值”对象(JavaScrip转载 2016-09-18 11:20:41 · 579 阅读 · 0 评论 -
jQuery源码解析---get与eq的区别
get与eq的区别.eq() 减少匹配元素的集合,根据index索引值,精确指定索引对象。.get() 通过检索匹配jQuery对象得到对应的DOM元素。同样是返回元素,那么eq与get有什么区别呢?eq返回的是一个jQuery对象,get返回的是一个DOM对象。举个例子:$( "li" ).get( 0 ).css("color", "red"); //错误转载 2016-09-14 15:34:21 · 713 阅读 · 0 评论 -
jQuery源码分析---仿栈与队列的操作
转载自:http://www.imooc.com/code/3414仿栈与队列的操作jQuery既然是模仿的数组结构,那么肯定会实现一套类数组的处理方法,比如常见的栈与队列操作push、pop、shift、unshift、求和、遍历循环each、排序及筛选等一系的扩展方法。jQuery对象栈是一个便于Dom的查找,提供的一系列方法,jQuery可以是集合元素,那么我转载 2016-09-14 14:40:38 · 444 阅读 · 0 评论 -
jquery源码解析----回溯处理的设计
回溯处理的设计 在这一小节我将会带领你们了解jQuery对DOM进行遍历背后的工作机制,这样可以在编写代码时有意识地避免一些不必要的重复操作,从而提升代码的性能。关于jQuery对象的包装var $aaron = $("aaron");通过对sizzle的分析,我们可以得知Query选择器最终都是通过DOM接口实现取值的, 但是通过jQu转载 2016-09-14 11:25:51 · 528 阅读 · 0 评论 -
jQuery源码学习---插件接口的设计
如果jQuery没有插件接口的设计,那么他就像一个光杆司令没有士兵,就是没有手下,只有自己一个封闭的城堡。因此jQuery城堡需要设计一个大门--插件接口,从而打开大门开始招兵买马。当然jQuery除了获得“开发者社区”的大力支持外,也有很多公司纷纷对它投出了橄榄枝,这也是它成功的关键。基于插件接口设计的好处也是颇多的,其中一个最重要的好处是把功能从主体框架中剥离出去,降低了框架的复杂度。转载 2016-09-14 10:37:10 · 620 阅读 · 0 评论 -
jquery源码解析资料
https://github.com/JsAaron/jQuery转载 2016-09-13 17:29:55 · 271 阅读 · 0 评论 -
作用域安全的构造函数以及js对象的创建步骤
//分离构造器通过new操作符构建一个对象,一般经过四个步骤:A.创建一个对象B.将构造函数的作用域赋给新对象(所以this就指向了这个新对象)C.执行构造函数中的代码D.返回这个新对象最后一点就说明了,我们只要返回一个新对象即可。其实new操作符主要是把原型链跟实例的this关联起来,这才是最关键的一点,所以我们如果需要原型链就必须要new操作符来处理。否则this就变成window转载 2016-09-12 15:20:37 · 493 阅读 · 0 评论 -
jquery源码解析----DOM文档加载步骤
//jquery中ready和load事件jquery有3种针对文档加载的方法:$(document).ready(function(){ //代码逻辑})//document ready简写$(function(){ //代码逻辑})$(document).load( function(){ //代码逻辑 })DOM文档加载步骤:(1)解析HTML结构转载 2016-09-12 13:37:10 · 833 阅读 · 0 评论