精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

jQuery的運行機制和設計理念

開發 開發工具
jQuery是一個非常優秀的JavaScript庫,與Prototype,YUI,Mootools等眾多的Js類庫相比,它劍走偏鋒,從Web開發實用的角度出發,拋除了其它Lib中一些不實用的東西,為開發者提供了短小精悍的類庫。

jQuery是一個非常優秀的JavaScript庫,與Prototype,YUI,Mootools等眾多的Js類庫相比,它劍走偏鋒,從Web開發實用的角度出發,拋除了其它Lib中一些不實用的東西,為開發者提供了短小精悍的類庫。

其短小精悍,使用簡單方便,性能高效,能極大地提高開發效率,是開發Web應用的***的輔助工具之一。因此大部分開發者在拋棄Prototype而選擇jQuery來進行Web開發。

一些開發人員在使用jQuery時,由于僅僅只知道jQuery文檔中的使用方法,不明白jQuery的運行原理,時常會碰到許多的問題。這些問題大部分是使用不當而產生,極少數是jQuery的Bug。如果不明白其運行機理和核心源碼,我們也很難寫出基于jQuery類庫的高性能的程序出來。

在調試基于jQuery的程序時,我們大部分時間都要跟蹤進入jQuery對象分析其運行的狀態,但是jQuery代碼不像Ext,YUI那樣中規中舉,它的代碼有點晦澀,難懂。也就說如果想用好jQuery,一定要清楚其源碼。

jQuery的設計理念

使用jQuery之前,我們都會問jQuery是什么?jQuery是一個類庫,和prototype,mootools等類庫一樣,為Web的JavaScript開發提供輔助功能。那為什么要選用jQuery呢?在jQuery出現之前,Prototype,YUI都是很成熟的Js的框架,而且是各有各的特點。為什么要拋棄它們,而使用后起之秀的jQuery,它有什么優秀的特性吸引開發人員呢?

回答這個問題,我們得明白jQuery的設計理念。回憶或想象一下,我們在Web開發中是如何使用JavaScript?絕大多數時間都是采用getElementById在Dom文檔中找到DOM元素,然后取值或設定值,采用innerHTML取其內容或設定其內容,或進行事件的監聽(如click),在控制樣式方面,我們會進行height,width,display等的改變,達到視覺上的效果,對于Ajax方面,也是取到數據在頁面的某元素里面去添充內容。

綜之,我們就是在對DOM元素在進行操作。這個元素可能是一個或是多個。這個元素可能是Document,Window或DOM元素。這樣我們的任務就是二大部分,一是找DOM元素,二是對DOM元素進行操作。

對于用得熟練一點,不管是采用如getElementById這樣的直接查找方式還是采用如Element.lastChild這類的間接查找方式不是很難的,對于DOM元素,DOM的操作方面也是很豐富,也不是很難使用?那么要類庫做什么用呢?最難的一個問題就是瀏覽器的兼容的問題。所有的JavaScript框架都要解決這一個問題,同時簡化JavaScript的本身自帶的操作。

Prototype可以說是開創了Js類庫的先河,給我們耳目一新的感覺。它解決大部分的瀏覽器的兼容的問題。同時簡化了原始函數名長難于記憶的經常書寫出的錯的問題(采用$(xx)代替getElementById),提供了Ajax的訪問方式,擴展了Array,Object,Function,Event等JavaScript原生對象。

但是這些還是不能滿足開發的需要,比如在DOM樹中尋找DOM元素,僅僅只能是通過元素的ID,但是我們想要更方便的查找方法,同時還希望能有一個統一的入口,不要太泛,學習曲線過高或難于使用。

jQuery就是從這里出發,把所有一切都統一在jQuery對象中。使用jQuery就是使用jQuery對象。其實jQuery開創性的工作就是如其名一樣:query。它強大的查找功能令所有的框架都黯然失色。jQuery實質就是一個查詢器。在查詢器的基礎還提供對查找到的元素進行操作的功能。這樣說來jQuery就是查詢和操作的統一。查詢是入口,操作是結果。

jQuery在實現上也可以分成兩大部分,一部分是jQuery的靜態方法,也可以稱作實用方法或工具方法,通過jQuery.xxx()的jQuery命名空間直接引用。第二部分是jQuery的實例方法,通過jQuery(xx)或$(xx)來生成jQuery實例,然后通過這個實例來引用的方法。這部分的方法大多數是從采用靜態方法代理來完成功能。真正的功能性的操作都在jQuery的靜態方法中實現。這些功能細分起來,可以分成以下幾個部分:

1、Selector,查找元素。這個查找不但包含基于CSS1~CSS3的CSS Selector功能,還包含其對直接查找或間接查找而擴展的一些功能。

2、Dom元素的屬性操作。Dom元素可以看作html的標簽,對于屬性的操作就是對于標簽的屬性進行操作。這個屬性操作包含增加,修改,刪除,取值等。

3、Dom元素的CSS樣式的操作。CSS是控制頁面的顯示的效果。對CSS的操作那就得包含高度,寬度,display等這些常用的CSS的功能。

4、Ajax的操作。Ajax的功能就是異步從服務器取數據然后進行相關操作。

5、Event的操作。對Event的兼容做了統一的處理。

6、動畫(Fx)的操作。可以看作是CSS樣式上的擴展。

jQuery對象的構建

生成或構建一個jQuery對象其實就是構建并運行一個查詢器(selector)。既然是查詢,肯定會查找的結果(DOM元素),之后才會有對這些結果進行操作。那么這些查找的結果存放在哪里呢?***的地方當然是這個jQuery對象內面。查找的結果可能是一個元素,也有可以是多個元素如(NodeSet的集合的形式)。也就是說jQuery對象內面有一個集合。這個集合存放查找到DOM元素。

但是上一小節所提到jQuery對象是所有操作的統一入口,那么它的構建就不能只局限于從DOM文檔中查找到DOM元素,還有可能是從別的集合中轉移過來的Dom元素,還有可能是從HTML的字符串生成的DOM元素。

在jQuery文檔中提供了四種方式:jQuery(expression,[context]),jQuery(html),jQuery(elements),jQuery(callback)四種構尋jQuery對象的方式。其中jQuery可以用$代替。這四種是經常用到。其實jQuery的參數可以是任何的元素,都能構成jQuery對象。

舉幾個例子:

1、$($(“P”))可以看出其參數可以是jQuery對象或ArrayLike的集合。

2、$()是$(document)的簡寫。

3、$(3)會把3放到jQuery對象中集合中。

對于如$(3)這樣的其中元素(如ArrayLike集合的元素)不是DOM元素,***不要構建jQuery對象,jQuery對象的方法都是針對于DOM對象的。不是很清楚其使用的話,很有可能會導致錯誤。上面講了這么多,還是很難明白其原理的,現在從源碼的角度細細分析:

通過jQuery(xxx)的調用實現沒有生成對象,它的this是指向Window對象的。那么jQuery的那些實例方法是怎樣繼承過來的呢?看一下:

  1. var jQuery = window.jQuery = window.$ = function(selector, context)   
  2. { return new jQuery.fn.init(selector, context);   
  3. }; 

這是jQuery的總的入口,jQuery對象實際上不是通過new jQuery()而繼承其prototype的中的方法。jQuery對象實際是jQuery.fn.init函數生成的對象。在里我們可以看出對于jQuery.prototype添加一些函數集的對象的意義不大。因為我們new jQuery()是可以的,但是生成的jQuery對象在return時會被拋棄。所以***不要用new jQuery()來構建jQuery對象。jQuery對象其實就是new jQuery.fn.init。那么jQuery.fn.init.prototype上就是掛著jQuery對象的操作方法。如

  1. jQueryjQuery.fn.init.prototype = jQuery.fn; 

有時間可能會擔心在589行就實現了把jQuery.fn中的函數放到jQuery.fn.init.prototype上去,那么之后的通過jQuery.fn.extend的方法怎么辦呢?這里實際是對jQuery.fn的引用。在擴展jQuery的時候,只要把相關的函數extend到jQuery.fn就可以了?,F在我們看一下jQuery.fn.init是怎么完成工作的:

  1. init : function(selector, context) {  
  2. selectorselector = selector || document;// 確定selector存在  
  3.  
  4. // ***種情況 Handle $(DOMElement)單個Dom 元素,忽略上下文  
  5.  
  6. if (selector.nodeType) {   
  7. this[0] = selector;  
  8. this.length = 1;  
  9. return this;  
  10. }   
  11.  
  12. if (typeof selector == "string") {//selector為string   
  13. var match = quickExpr.exec(selector);   
  14. if (match && (match[1] || !context)) {  
  15. if (match[1])// 第二種情況處理$(html) -> $(array)   
  16. selector = jQuery.clean([match[1]], context);  
  17. else {// 第三種情況:HANDLE: $("#id")//處理$("#id")  
  18. var elem = document.getElementById(match[3]);  
  19. if (elem) {   
  20. // IE會返回name=id的元素 ,如果是這樣,就document.find(s)  
  21. if (elem.id != match[3])   
  22. return jQuery().find(selector);  
  23. // 構建一個新的jQuery(elem)  
  24. return jQuery(elem);   
  25. }  
  26. selector = [];  
  27. }  
  28. } else   
  29.  
  30. // 第四種情況:處理$(expr, [context])==$(content).find(expr)  
  31. return jQuery(context).find(selector);   
  32. } else if (jQuery.isFunction(selector)) // 第五種情況:處理$(function)七Shortcut for document ready   
  33. return jQuery(document)[jQuery.fn.ready ? "ready" : "load"](selector);  
  34.  
  35. // 第六種情況:處理$(elements)  
  36. return this.setArray(jQuery.makeArray(selector));   

原文鏈接:http://hi.baidu.com/dreamontheway/blog/item/0ef576393486f52d97ddd8b2.html

【編輯推薦】

  1. Django創始人:從技術工藝上考量jQuery
  2. jQuery開發者:你真的需要一個插件嗎?
  3. jQuery讓開發者戀戀不舍的秘密
  4. jQuery***實踐:精妙的自定義事件
  5. jQuery高級應用:優化Web應用程序的***絕招
責任編輯:王曉東 來源: 百度空間
相關推薦

2015-11-20 11:20:54

js開發

2009-10-22 17:10:04

CLR和JRE運行機制

2019-08-15 10:17:16

Webpack運行瀏覽器

2019-05-10 14:00:21

小程序運行機制前端

2009-02-03 14:00:20

PHP運行PHP調用PHP原理

2009-12-11 10:52:37

PHP運行機制

2015-11-16 11:17:30

PHP底層運行機制原理

2010-02-01 17:19:30

C++運行機制

2010-05-06 17:54:54

Oracle鎖

2018-12-26 16:30:09

SQL Server內部運行機制數據庫

2019-10-11 09:00:00

JavaScriptEvent Loop前端

2023-05-26 08:01:01

FacebookVelox機制

2010-01-05 16:10:21

.NET Framew

2010-02-23 10:15:22

WCF運行機制

2012-03-06 10:22:00

程序

2011-04-27 09:22:28

C#延遲加載

2016-12-13 14:12:25

程序機制

2016-12-14 14:41:20

Hello World程序運行機制

2018-03-15 16:45:47

前端JavaScriptthis

2017-05-31 13:16:35

PHP運行機制原理解析
點贊
收藏

51CTO技術棧公眾號

动漫一区二区在线| 久久av资源网站| 中文字幕av专区| 99福利在线| 久久综合九色综合97婷婷女人| 久久午夜电影| 国产丝袜一区二区三区| 国产一区二区在线免费播放| 婷婷色在线资源| 久久久精品tv| 97人人干人人| 免费在线不卡av| 精品91在线| 色偷偷91综合久久噜噜| xxxxxx黄色| 9999精品| 色香蕉成人二区免费| 人人妻人人澡人人爽欧美一区| 青青草在线免费观看| 国产精品1区2区| 国产精品久久久av| 亚洲欧美在线观看视频| 亚洲欧美偷拍自拍| 亚洲一区二区久久久| 午夜不卡久久精品无码免费| 亚洲免费资源| 欧洲中文字幕精品| 欧美精品一区免费| 美女尤物在线视频| 亚洲精品中文字幕在线观看| 天堂资源在线亚洲视频| 三级视频在线看| 国产精品888| 91人成网站www| 欧美性受xxx黑人xyx性爽| 一本一本久久| 欧美极品在线播放| 我家有个日本女人| 综合久久精品| 俺也去精品视频在线观看| 妺妺窝人体色WWW精品| 都市激情亚洲欧美| 日韩精品最新网址| 伊人av在线播放| 人人爱人人干婷婷丁香亚洲| 欧美日韩亚洲综合| 韩国视频一区二区三区| 亚洲伦乱视频| 欧洲在线/亚洲| 熟女人妇 成熟妇女系列视频| 九色porny丨入口在线| 午夜欧美大尺度福利影院在线看| 污污污污污污www网站免费| 成人高清免费在线| 一区二区三区欧美亚洲| 加勒比海盗1在线观看免费国语版| 午夜在线视频| 国产精品白丝在线| 一区二区欧美日韩| 九七久久人人| 一个色综合网站| 成人一级生活片| 91福利在线免费| 偷拍与自拍一区| 大肉大捧一进一出好爽视频| 一级毛片久久久| 欧美午夜精品一区二区蜜桃| www.超碰com| 日韩三级一区| 日韩亚洲国产中文字幕欧美| 丰满熟女人妻一区二区三区| 精品亚洲自拍| 亚洲色图日韩av| 天堂网av2018| 欧美1区视频| 午夜精品蜜臀一区二区三区免费| 精品人妻无码一区二区性色| 秋霞国产午夜精品免费视频| 91精品国产综合久久久久久久久 | 精品久久久国产精品999| 久久99久久99精品| 欧美大片免费高清观看| 欧美日韩一区二区电影| 日本一区二区三区在线免费观看| 国产精品22p| 亚洲天堂av女优| 国产极品国产极品| 亚洲综合三区| 91视频国产一区| 无码国产精品96久久久久| 国产三区在线成人av| 超级碰在线观看| 九九精品调教| 欧美亚洲一区二区在线| 免费国偷自产拍精品视频| 免费萌白酱国产一区二区三区| 亚洲欧美在线播放| av激情在线观看| 免费日韩av片| 91色琪琪电影亚洲精品久久| 艳母动漫在线看| 综合欧美一区二区三区| 黄色网页免费在线观看| 婷婷久久免费视频| 日韩精品极品毛片系列视频| 黄色片网站在线播放| 一区二区三区国产在线| 成人美女免费网站视频| 深夜福利免费在线观看| 亚洲乱码国产乱码精品精98午夜| 日本在线观看a| gogo人体一区| 最近2019年好看中文字幕视频| 国产乡下妇女做爰毛片| 久久精品99久久久| 欧美高清视频一区| av2020不卡| 日韩欧美中文字幕制服| 五月婷婷六月香| 模特精品在线| 粉嫩av免费一区二区三区| 永久免费av片在线观看全网站| 亚洲高清在线视频| av在线网站免费观看| 成人精品久久| 欧美专区在线播放| 日韩一区二区三区不卡| 伊人一区二区三区| 涩涩网站在线看| 成人国产精品一级毛片视频| 国产成人久久久精品一区| 日本精品999| 亚洲综合成人在线| 无码国产精品久久一区免费| 91亚洲国产成人久久精品| 日本一区二区在线播放| 欧美孕妇性xxxⅹ精品hd| 天天av天天翘天天综合网色鬼国产| 日本一二三区在线| 999国产精品视频| 国产精品视频导航| 中文字幕在线播放| 欧美人与性动xxxx| 国精产品视频一二二区| 美女免费视频一区二区| 日韩精品国内| 全球最大av网站久久| 亚洲色图美腿丝袜| 中日韩在线观看视频| 国产调教视频一区| 看欧美ab黄色大片视频免费 | 中文字幕色一区二区| 久久免费资源| 日韩最新免费不卡| 国产男男gay体育生白袜| 国产精品白丝在线| 亚洲欧美日韩中文字幕在线观看| 亚洲电影影音先锋| 成人av免费电影| 国产精品一区二区日韩| 亚洲欧美在线一区二区| 伊人成年综合网| 国产精品第一页第二页第三页| 日本人69视频| 亚洲无中文字幕| 岛国视频一区| 性欧美18~19sex高清播放| 亚洲视频在线观看免费| 国产成人精品亚洲| 亚洲黄色性网站| v天堂中文在线| 日韩国产欧美视频| www.黄色网址.com| 国产精品宾馆| 国产精品av免费在线观看| 69av亚洲| 亚洲成人精品久久| 中文字幕精品视频在线观看| 中文字幕永久在线不卡| 美女流白浆视频| 久久激情一区| 六月婷婷激情网| 色88888久久久久久影院| 国产精品美女在线| 色呦呦在线看| 亚洲社区在线观看| 性中国古装videossex| 欧美午夜精品久久久久久人妖| 999久久久国产| www.日韩精品| 日日干夜夜操s8| 一本不卡影院| 一区二区国产日产| 五月国产精品| 91人人爽人人爽人人精88v| 午夜久久中文| 久久中文字幕视频| 国产精品一二三区视频| 日韩亚洲欧美在线观看| 青青艹在线观看| 亚洲国产日产av| 91av手机在线| 久久久久久久久久美女| 亚洲成人福利视频| 日韩二区在线观看| 黄色成人在线看| 亚洲精品久久久| 奇米影视首页 狠狠色丁香婷婷久久综合| 24小时成人在线视频| 欧美一区二区三区免费视| 成人在线观看免费网站| 国产亚洲精品美女久久久久 | 亚洲欧美国产高清va在线播| 国产偷拍一区二区| 欧洲亚洲国产日韩| 亚洲免费在线观看av| 一区二区在线免费观看| 你懂得在线观看| 国产日韩欧美不卡在线| 性色av蜜臀av浪潮av老女人| 国产麻豆精品视频| 97超碰人人爽| 日韩av一级电影| 免费无码不卡视频在线观看| 欧美在线高清| 中文字幕中文字幕99 | 成人污污视频在线观看| 一二三级黄色片| 青青国产91久久久久久| 欧美国产亚洲一区| 国产午夜久久| 欧美亚洲日本一区二区三区| 欧美日韩精品| 成人免费看片视频在线观看| 成人在线丰满少妇av| 日本不卡一二三区| 嫩草影视亚洲| 欧美三级网色| 猛男gaygay欧美视频| 精品久久久久久乱码天堂| 风间由美性色一区二区三区四区| 91久久精品www人人做人人爽 | 日韩电影在线免费观看| 国产日产欧美视频| 午夜亚洲激情| 北条麻妃在线一区| 丝瓜av网站精品一区二区| 免费观看成人在线视频| 久久精品99北条麻妃| 国产日韩亚洲欧美综合| 在线观看日本中文字幕| 国产日韩精品一区二区三区在线| 在线不卡av电影| 国产欧美日韩一区二区三区在线观看| 午夜理伦三级做爰电影| 国产午夜亚洲精品理论片色戒 | 日韩一区在线免费观看| 中文字幕求饶的少妇| 亚洲日韩欧美一区二区在线| 免费在线观看h片| 亚洲国产一区在线观看| 日产电影一区二区三区| 高跟丝袜一区二区三区| 国产91国语对白在线| 欧美影片第一页| 91久久国语露脸精品国产高跟| 日韩一区二区三区精品视频| 亚洲精品一区二区口爆| 日韩精品免费电影| 精品欧美不卡一区二区在线观看| 中文字幕亚洲第一| 成人video亚洲精品| 亚洲97在线观看| 精品成人免费一区二区在线播放| 国产日韩在线视频| 亚洲午夜精品| 日本成人三级| 一区二区三区在线电影| 国产免费观看高清视频| 免费高清在线视频一区·| 99国产精品免费视频| 91亚洲国产成人精品一区二区三| 国产馆在线观看| 午夜欧美在线一二页| 正在播放木下凛凛xv99| 日韩精品一区二区三区视频在线观看 | 日本三级午夜理伦三级三| 天天操天天干天天综合网| 最近日韩免费视频| 亚洲精品一区二区三区99| 国产在线观看高清视频| 欧美老女人性视频| 欧美成a人片在线观看久| 99视频免费观看蜜桃视频| 九热爱视频精品视频| 好色先生视频污| 在线看片欧美| 午夜精品免费看| 久久综合色之久久综合| 欧美成人精品欧美一级私黄| 91成人在线免费观看| www.色呦呦| 中日韩午夜理伦电影免费 | 成人黄色短视频在线观看| 亚洲精品第五页| 亚洲欧美制服第一页| 另类视频在线| 国产又爽又黄的激情精品视频| 日韩av中文字幕一区| 亚洲免费av网| 日韩激情视频在线观看| 91丝袜在线观看| 樱花草国产18久久久久| 亚洲天堂中文字幕在线| 亚洲欧美三级伦理| 国产v日韩v欧美v| 91青青草免费在线看| 欧美va久久久噜噜噜久久| 凹凸日日摸日日碰夜夜爽1| 成人h动漫精品| 九九精品在线观看视频| 在线播放视频一区| 九色蝌蚪在线| 欧洲日韩成人av| 天海翼亚洲一区二区三区| av日韩一区二区三区| 国产精品乡下勾搭老头1| 999久久久国产| 精品视频在线看| 成人网视频在线观看| 日本久久91av| 久久99青青| 黑鬼大战白妞高潮喷白浆| 26uuu亚洲婷婷狠狠天堂| 国产亚洲色婷婷久久99精品| 日韩欧美在线一区二区三区| 欧美三级黄网| 国产欧美日韩高清| 精品久久一区| 15—17女人毛片| 国产目拍亚洲精品99久久精品| 成人一级免费视频| 亚洲欧美激情视频| 久久99久久99精品免观看软件| 欧美二级三级| 日韩va欧美va亚洲va久久| 久久久久久久久久久久| 色琪琪一区二区三区亚洲区| 激情在线视频| 国产精品视频自在线| 99国产**精品****| 欧美性受xxxxxx黑人xyx性爽| 亚洲天堂免费看| www.五月激情| 91禁外国网站| 欧美男gay| 色婷婷综合网站| 亚洲免费资源在线播放| 国产成年妇视频| 久久久久久久久久久av| 精品国产一区二区三区成人影院| 欧美 日韩 国产 高清| 久久久国产综合精品女国产盗摄| 最近中文字幕在线免费观看| 久久久国产精彩视频美女艺术照福利 | 黄色片免费观看视频| 亚洲成色777777女色窝| 免费h在线看| 日韩不卡av| 国产精品一级在线| 日本一区二区三区四区五区| 亚洲欧美色图片| 一区二区三区少妇| 亚洲欧美日韩中文字幕一区二区三区 | 亚洲一区二区三区在线| 亚洲成人第一区| 69国产精品成人在线播放| 精品一区三区| а 天堂 在线| 天天综合日日夜夜精品| 成人18在线| 99在线观看视频| 乱人伦精品视频在线观看| 18啪啪污污免费网站| 亚洲成色999久久网站| 日韩不卡免费高清视频| 一本久久a久久精品vr综合| 成人自拍视频在线观看| 久久久久亚洲视频| 久久69精品久久久久久国产越南| 欧美美女啪啪| 中文字幕 欧美日韩| 精品国产鲁一鲁一区二区张丽| av中文字幕一区二区三区| 国产在线观看一区| 久久爱另类一区二区小说| 日韩av一区二区在线播放| 日韩中文字幕免费看| 日韩av字幕| 深夜视频在线观看|