第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

章節(jié)
問(wèn)答
課簽
筆記
評(píng)論
占位
占位

jQuery整體架構(gòu)

任何程序代碼不是一開(kāi)始就復(fù)雜的,成功也不是一躇而蹴的,早期jQuery的作者John Resig在2005年提議改進(jìn)Prototype的“Behaviour”庫(kù)時(shí),只是想讓其使用更簡(jiǎn)單才發(fā)布新的jQuery框架。起初John Resig估計(jì)也沒(méi)料想jQuery會(huì)如此的火熱。我們可以看到從發(fā)布的第一個(gè)1.0開(kāi)始到目前最新的2.1.1其代碼膨脹到了9000多行,它兼容CSS3,還兼容各種瀏覽器,jQuery使用戶(hù)能更方便地處理DOM、事件、實(shí)現(xiàn)動(dòng)畫(huà)效果,并且方便地為網(wǎng)站提供AJAX交互。

1、最新jQuery2.1.1版本的結(jié)構(gòu):
代碼請(qǐng)查看右側(cè)代碼編輯器(1-24行)

2、jQuery的模塊依賴(lài)網(wǎng):
 

(單擊圖片可放大)

jQuery一共13個(gè)模塊,從2.1版開(kāi)始jQuery支持通過(guò)AMD模塊劃分,jQuery在最開(kāi)始發(fā)布的1.0版本是很簡(jiǎn)單的,只有CSS選擇符、事件處理AJAX交互3大塊。其發(fā)展過(guò)程中,有幾次重要的變革:

    ?  1.2.3 版發(fā)布,引入數(shù)據(jù)緩存,解決循環(huán)引用與大數(shù)據(jù)保存的問(wèn)題
    ?  1.3 版發(fā)布,它使用了全新的選擇符引擎Sizzle,在各個(gè)瀏覽器下全面超越其他同類(lèi)型JavaScript框架的查詢(xún)速度,程序庫(kù)的性能也因此有了極大提升
    ?  1.5 版發(fā)布,新增延緩對(duì)像(Deferred Objects),并用deferred重寫(xiě)了Ajax模塊
    ?  1.7 版發(fā)布,抽象出回調(diào)對(duì)象,提供了強(qiáng)大的的方式來(lái)管理回調(diào)函數(shù)列表。

每一次大的改進(jìn)都引入了一些新的機(jī)制、新的特性,通過(guò)這些新的機(jī)制就造就了如今jQuery庫(kù),一共13個(gè)模塊,模塊不是單一的,比如jQuery動(dòng)畫(huà),都會(huì)依賴(lài)異步隊(duì)列、動(dòng)畫(huà)隊(duì)列、回調(diào)隊(duì)列與數(shù)據(jù)緩存模塊等。

jQuery抽出了所有可復(fù)用的特性,分離出單一模塊,通過(guò)組合的用法,不管在設(shè)計(jì)思路與實(shí)現(xiàn)手法上jQuery都是非常高明的。

五大塊:
jQuery按我的理解分為五大塊,選擇器、DOM操作、事件、AJAX與動(dòng)畫(huà),那么為什么有13個(gè)模塊?因?yàn)閖Query的設(shè)計(jì)中最喜歡的做的一件事,就是抽出共同的特性使之“模塊化”,當(dāng)然也是更貼近S.O.L.I.D五大原則的“單一職責(zé)SRP”了,遵守單一職責(zé)的好處是可以讓我們很容易地來(lái)維護(hù)這個(gè)對(duì)象,比如,當(dāng)一個(gè)對(duì)象封裝了很多職責(zé)的時(shí)候,一旦一個(gè)職責(zé)需要修改,勢(shì)必會(huì)影響該對(duì)象的其它職責(zé)代碼。通過(guò)解耦可以讓每個(gè)職責(zé)更加有彈性地變化。
我們來(lái)看看jQuery文檔針對(duì)業(yè)務(wù)層的Ajax的處理提供了一系列的門(mén)面接口:

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

底層接口:

jQuery.ajax()
jQuery.ajaxSetup()

快捷方法:

jQuery.get()
jQuery.getJSON()
jQuery.getScript()
jQuery.post()

 

jQuery接口的設(shè)計(jì)原理

業(yè)務(wù)邏輯是復(fù)雜多變的,jQuery的高層API數(shù)量非常多,而且也非常的細(xì)致,這樣做可以更友好的便于開(kāi)發(fā)者的操作,不需要必須在一個(gè)接口上重載太多的動(dòng)作。我們?cè)谏钊雰?nèi)部看看Ajax的高層方法其實(shí)都是統(tǒng)一調(diào)用了一個(gè)靜態(tài)的jQuery.ajax方法,代碼見(jiàn)右側(cè)代碼編輯器(27-43行)。
jQuery.ajax的內(nèi)部實(shí)現(xiàn)是非常復(fù)雜的,首先ajax要考慮異步的處理與回調(diào)的統(tǒng)一性,所以就引入了異步隊(duì)列模塊(Deferred)與回調(diào)模塊(Callbacks), 所以要把這些模塊方法在ajax方法內(nèi)部再次封裝成、構(gòu)建出一個(gè)新的jQXHR對(duì)象,針對(duì)參數(shù)的默認(rèn)處理,數(shù)據(jù)傳輸?shù)母袷交鹊取?/p>

 

任務(wù)

?不會(huì)了怎么辦
||

提問(wèn)題

寫(xiě)筆記

公開(kāi)筆記
提交
||

請(qǐng)驗(yàn)證,完成請(qǐng)求

由于請(qǐng)求次數(shù)過(guò)多,請(qǐng)先驗(yàn)證,完成再次請(qǐng)求

加群二維碼

打開(kāi)微信掃碼自動(dòng)綁定

您還未綁定服務(wù)號(hào)

綁定后可得到

  • · 粉絲專(zhuān)屬優(yōu)惠福利
  • · 大咖直播交流干貨
  • · 課程更新,問(wèn)題答復(fù)提醒
  • · 賬號(hào)支付安全提醒

收藏課程后,能更快找到我哦~

使用 Ctrl+D 可將課程添加到書(shū)簽

邀請(qǐng)您關(guān)注公眾號(hào)
關(guān)注后,及時(shí)獲悉本課程動(dòng)態(tài)

舉報(bào)

0/150
提交
取消
全部 精華 我要發(fā)布
全部 我要發(fā)布
最熱 最新
只看我的

手記推薦

更多

本次提問(wèn)將花費(fèi)2個(gè)積分

你的積分不足,無(wú)法發(fā)表

為什么扣積分?

本次提問(wèn)將花費(fèi)2個(gè)積分

繼續(xù)發(fā)表請(qǐng)點(diǎn)擊 "確定"

為什么扣積分?