一.jQuery种的队列模块 jQuery的队列模块主要是为动画模块EFFECTS提供支持,(不过到现在为了支持动画队列的inprogress的出入队还是搞不太清楚),单独抽取出一个命名空间是为了使程序员可以自定义自己的队列.不过貌似用得不多? 具体API的调用方法可以参考这篇博客http://snandy.iteye.com/blog/1978428 二.队列模块的代码结构 低级方法jQuery下有queue,dequeue,_queueHooks这三种方法:低级方法不建议直接在外部调用: 高…
自己实现的callbacks模块相较于jquery源代码中的callbacks模块有所简化,表面上看没有考虑firing这个参数,没有对之进行任何处理,即没有考虑在函数执行过程中,再次调用add,remove,fire的种种情况. 话不多少,直接上代码,所有的思考都在代码里面: var optionsCache={}; function createOptions(options){ var object=optionsCache[options]={}; //\S+,匹配非空格字符 //正则表…
jquery源代码学习_工具函数_type jquery里面有一个很重要的工具函数,$.type函数用来判断类型,今天写这篇文章,是来回顾type函数的设计思想,深入理解. 首先来看一下最终结果: 上面的源代码乍一看似乎艰涩难懂,有点抽象,毕竟是前辈心血之作,深深佩服.对我们初学者,可以从简单入手,来一步一步深化,得到最终的优化方案. 第一个版本 在看<JavaScript高级程序设计>这本书时候,书上提到typeof,typeof可以判断function,number ,undefined,…
jQuery源代码学习笔记_工具函数_noop/error/now/trim jquery提供了一系列的工具函数,用于支持其运行,今天主要分析noop/error/now/trim这4个函数: 1.noop //返回一个空函数 function noop() { } noop这个函数的功能就是什么也不做,方便在全局使用一个空函数,减少内存开销. 2.error function error(msg) { throw new Error(msg); } 用于统一抛出异常,可以减少代码中使用thro…
jQuery事件系统并没有将事件坚挺函数直接绑定在DOM元素上,而是基于事件缓存模块来管理监听函数的. 二.jQuery事件模块的代码结构 //定义了一些正则 // // //jQuery事件对象 jQuery.event={ global:{}, add:function(elem,types,handle,data,selector){}, remove:function(elem,types,handler,selector,mapppedTypes){}, trigger:functio…
一.jQuery属性模块整体介绍 jQuery的属性操作模块分四个部分:html属性操作,dom属性操作,类样式操作,和值操作. html属性操作(setAttribute/getAttribute)是指对html文档中的属性进行读取,设置和移除操作,其中,属性名一般是小写的联词符式的字符串,属性值也是字符串. DOM属性操作时对DOM元素的属性(DOM[propName]或者DOM.propName的形式)进行读取,设置和移除操作,其中,属性名一般是驼峰式字符串,属性值可以是任何类型: 类样式…
队列是常用的数据结构之一,只允许在表的前端(队头)进行删除操作(出队),在表的后端(队尾)进行插入操作(入队).特点是先进先出,最先插入的元素最先被删除. 在jQuery内部,队列模块为动画模块提供基础功能,负责存储动画函数.自动出队并执行动画函数,同时还要确保动画函数的顺序执行. jQuery的静态方法含有如下API: $.queue(elem,type,data) ;返回或修改匹配元素关联的队列,返回最新的队列,参数如下:   elem ;DOM元素或JavaScript对象 type  ;…
一.jQuery数据缓存基本原理 jQuery数据缓存就两个全局Data对象,data_user以及data_priv; 这两个对象分别用于缓存用户自定义数据和内部数据: 以data_user为例,所有用户自定义数据都被保存在这个对象的cache属性下,cache在此姑且称之为自定义数据缓存: 自定义数据缓存和DOM元素/javascript对象通过id建立关联,id的查找通过DOM元素/javascript元素下挂载的expando属性获得 话不多说,直接上代码.相关思路在代码注释中都有讲解…
jQuery.when提供了基于一个或多个对象的状态来执行回调函数的功能,通常是基于具有异步事件的异步队列. 如果传入多个异步队列,jQuery.when会返回一个新的主异步队列的只读副本(promise),这个副本将跟踪所传递的异步队列的最终状态. 当所有异步队列都成功,主异步队列的成功回调函数将会被调用,参数是包含所有异步队列成功参数的数组:为了达到这一效果,方法jQuery.when会维护一个计数器,并在每个异步队列上,添加成功回调,当每个异步队列的成功回调触发时,会将该计数器减1,当计算…
Jquery中Ajax的运用是另外一个重点,平时项目经常会用它进行一些异步操作:其核心是通过XMLHttpRequest对象以一种异步的方式,向服务器发送数据请求,并通过该对象接收请求返回的数据,从而完成人机交互的数据操作: 1:传统javascript的Ajax方式; 在上一篇文章有简单介绍javascript的Ajax操作理论知识(Jquery重新学习之六[操作XML数据]):下面将再通过一个小实例进行演示这种方式的操作: a:创建一个页面aspx,编写一些JS代码进行AJAX提交,参数有个…