jQuery全体架构

导语 任何程序代码不是一开端就杂乱的,成功也不是一躇而蹴的,前期jQuery的作者John Resig在2005年提议改善Prototype的Behaviour库时,仅仅想让其运用更简略才发布新的jQuery结构。起先John Resig估量也没意料jQue
任何程序代码不是一开端就杂乱的,成功也不是一躇而蹴的,前期jQuery的作者John Resig在2005年提议改善Prototype的“Behaviour”库时,仅仅想让其运用更简略才发布新的jQuery结构。起先John Resig估量也没意料jQuery会如此的炽热。咱们能够看到从发布的第一个1.0开端到现在最新的2.1.1其代码胀大到了9000多行,它兼容CSS3,还兼容各种阅览器,jQuery运用户能更方便地处理DOM、事情、完结动画作用,并且方便地为网站供给AJAX交互。

1、最新jQuery2.1.1版别的结构:
 

  1. ;(function(global, factory) { 
  2.     factory(global); 
  3. }(typeof window !== "undefined" ? window : this, function(window, noGlobal) { 
  4.     var jQuery = function( selector, context ) { 
  5.         return new jQuery.fn.init( selector, context ); 
  6.     }; 
  7.     jQuery.fn = jQuery.prototype = {}; 
  8.     // 中心办法 
  9.     // 回调系统 
  10.     // 异步行列 
  11.     // 数据缓存 
  12.     // 行列操作 
  13.     // 选择器引 
  14.     // 特点操作 
  15.     // 节点遍历 
  16.     // 文档处理 
  17.     // 款式操作 
  18.     // 特点操作 
  19.     // 事情系统 
  20.     // AJAX交互 
  21.     // 动画引擎 
  22.     return jQuery; 
  23. })); 

2、jQuery的模块依靠网

博学谷

jQuery总共13个模块,从2.1版开端jQuery支撑经过AMD模块区分,jQuery在最开端发布的1.0版别是很简略的,只要CSS选择符、事情处理和AJAX交互3大块。其开展过程中,有几回重要的革新:

    ☑  1.2.3 版发布,引进数据缓存,处理循环引证与大数据保存的问题
    ☑  1.3 版发布,它运用了全新的选择符引擎Sizzle,在各个阅览器下全面逾越其他同类型JavaScript结构的查询速度,程序库的功用也因此有了极大提高
    ☑  1.5 版发布,新增推迟对像(Deferred Objects),并用deferred重写了Ajax模块
    ☑  1.7 版发布,笼统出回调目标,供给了强壮的的办法来办理回调函数列表。

每一次大的改善都引进了一些新的机制、新的特性,经过这些新的机制就造就了现在jQuery库,总共13个模块,模块不是单一的,比方jQuery动画,都会依靠异步行列、动画行列、回调行列与数据缓存模块等。

jQuery抽出了一切可复用的特性,别离出单一模块,经过组合的用法,不论在规划思路与完结办法上jQuery都是十分高超的。

五大块:
jQuery按我的了解分为五大块,选择器、DOM操作、事情、AJAX与动画,那么为什么有13个模块?由于jQuery的规划中最喜爱的做的一件事,便是抽出一起的特性使之“模块化”,当然也是更靠近S.O.L.I.D五大准则的“单一责任SRP”了,恪守单一责任的优点是能够让咱们很容易地来保护这个目标,比方,当一个目标封装了许多责任的时分,一旦一个责任需求修正,势必会影响该目标的其它责任代码。经过解耦能够让每个责任愈加有弹性地改变。
咱们来看看jQuery文档针对事务层的Ajax的处理供给了一系列的门面接口:

.ajaxComplete()
.ajaxError()
.ajaxSend()
.ajaxStart()
.ajaxStop()
.ajaxSuccess()

底层接口:

jQuery.ajax()
jQuery.ajaxSetup()

方便办法:

jQuery.get()
jQuery.getJSON()
jQuery.getScript()
jQuery.post()
jQuery接口的规划原理

事务逻辑是杂乱多变的,jQuery的高层API数量十分多,并且也十分的详尽,这样做能够更友爱的便于开发者的操作,不需求有必要在一个接口上重载太多的动作。咱们在深化内部看看Ajax的高层办法其实都是一致调用了一个静态的jQuery.ajax办法

  1. jQuery.each( [ "get""post" ], function( i, method ) { 
  2.     jQuery[ method ] = function( url, data, callback, type ) { 
  3.         // Shift arguments if data argument was omitted 
  4.         if ( jQuery.isFunction( data ) ) { 
  5.             type     = type || callback; 
  6.             callback = data; 
  7.             data     = undefined; 
  8.         } 
  9.         return jQuery.ajax({ 
  10.             url: url, 
  11.             type: method, 
  12.             dataType: type, 
  13.             data: data, 
  14.             success: callback 
  15.         }); 
  16.     }; 
  17. }); 

在jQuery.ajax的内部完结是十分杂乱的,首要ajax要考虑异步的处理与回调的一致性,所以就引进了异步行列模块(Deferred)与回调模块(Callbacks), 所以要把这些模块办法在ajax办法内部再次封装成、构建出一个新的jQXHR目标,针对参数的默许处理,数据传输的格式化等等。

 

http://www.nucmc.com/ true jQuery全体架构 http://www.nucmc.com/show-13-493-1.html report 3659.5 任何程序代码不是一开端就杂乱的,成功也不是一躇而蹴的,前期jQuery的作者John Resig在2005年提议改善Prototype的Behaviour库时,仅仅想让其运用更简略才发布新的jQuery结构。起先John Resig估量也没意料jQue
TAG:jQuery 架构
本站欢迎任何方式的转载,但请有必要注明出处,尊重别人劳动成果
转载请注明: 文章转载自:BETWAY官网网 http://www.nucmc.com/show-13-493-1.html
BETWAY官网网 Copyright 2012-2014 www.nucmc.com All rights reserved.(晋ICP备13001436号-1)