關(guān)于jQuery的簡(jiǎn)介及發(fā)展分析-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)關(guān)于jQuery的簡(jiǎn)介及發(fā)展分析,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比運(yùn)城網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式運(yùn)城網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋運(yùn)城地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。

最近,我們將 jQuery 完全從 GitHub.com 的前端代碼中移除了,這標(biāo)志著我們數(shù)年來逐步移除 jQuery 這個(gè)漸進(jìn)式的過程終于結(jié)束了,這對(duì)我們來說是一件里程碑式的事件。這篇文章將介紹過去我們是如何依賴上 jQuery 的,隨著時(shí)間地推移,我們意識(shí)到不再需要它,但到最后我們并沒有使用另一個(gè)庫或框架取代它,而是使用標(biāo)準(zhǔn)的瀏覽器 API 實(shí)現(xiàn)了我們所需要的一切。


早期,jQuery 對(duì)我們意義重大

GitHub.com 在 2007 年底開始使用 jQuery 1.2.1,那是谷歌發(fā)布 Chrome 瀏覽器的前一年。當(dāng)時(shí)還沒有通過 CSS 選擇器來查詢 DOM 元素的標(biāo)準(zhǔn)方法,也沒有動(dòng)態(tài)渲染元素的樣式的標(biāo)準(zhǔn)方法,而 Internet Explorer 的 XMLHttpRequest 接口與其他很多 API 一樣,在瀏覽器之間存在不一致性問題。

jQuery 讓 DOM 操作、創(chuàng)建動(dòng)畫和“AJAX”請(qǐng)求變得相當(dāng)簡(jiǎn)單,基本上,它讓 Web 開發(fā)人員能夠創(chuàng)建更加現(xiàn)代化的動(dòng)態(tài) Web 體驗(yàn)。最重要的是,使用 jQuery 為一個(gè)瀏覽器開發(fā)的代碼也適用于其他瀏覽器。在 GitHub 的早期階段,jQuery 讓小型的開發(fā)團(tuán)隊(duì)能夠快速進(jìn)行原型設(shè)計(jì)并開發(fā)出新功能,而無需專門針對(duì)每個(gè) Web 瀏覽器調(diào)整代碼。

基于 jQuery 簡(jiǎn)單的接口所構(gòu)建的擴(kuò)展庫也成為 GitHub.com 前端的基礎(chǔ)構(gòu)建塊:pjax(https://github.com/defunkt/jquery-pjax)和 facebox(https://github.com/defunkt/facebox)。

我們將永遠(yuǎn)不會(huì)忘記 John Resig 和 jQuery 貢獻(xiàn)者創(chuàng)建和維護(hù)的這樣一個(gè)有用的基本庫。

后來的 Web 標(biāo)準(zhǔn)

多年來,GitHub 成長(zhǎng)為一家擁有數(shù)百名工程師的公司,并逐漸成立了一個(gè)專門的團(tuán)隊(duì),負(fù)責(zé) JavaScript 代碼的規(guī)模和質(zhì)量。我們一直在排除技術(shù)債務(wù),有時(shí)技術(shù)債務(wù)會(huì)隨著依賴項(xiàng)的增多而增長(zhǎng),這些依賴項(xiàng)在一開始會(huì)為我們帶來一定的價(jià)值,但這些價(jià)值也隨著時(shí)間的推移而下降。

我們可以將 jQuery 與現(xiàn)代瀏覽器支持的 Web 標(biāo)準(zhǔn)的快速演化進(jìn)行比較:

$(selector) 模式可以使用 querySelectorAll() 來替換;

現(xiàn)在可以使用 Element.classList 來實(shí)現(xiàn) CSS 類名切換;

CSS 現(xiàn)在支持在樣式表中而不是在 JavaScript 中定義可視動(dòng)畫;

現(xiàn)在可以使用 Fetch Standard 執(zhí)行 $.ajax 請(qǐng)求;

addEventListener() 接口已經(jīng)足夠穩(wěn)定,可以跨平臺(tái)使用;

我們可以使用輕量級(jí)的庫來封裝事件委托模式;

隨著 JavaScript 語言的發(fā)展,jQuery 提供的一些語法糖已經(jīng)變得多余。

另外,鏈?zhǔn)秸Z法不能滿足我們想要的編寫代碼的方式。

最后,我們開始使用 Flow 來注解類型,以便在構(gòu)建時(shí)執(zhí)行靜態(tài)類型檢查,并且我們發(fā)現(xiàn),鏈?zhǔn)秸Z法不適合做靜態(tài)分析,因?yàn)閹缀跛?jQuery 方法返回的結(jié)果都是相同的類型。我們當(dāng)時(shí)之所以選擇 Flow,是因?yàn)?@flow weak 模式等功能可以讓我們逐步將類型應(yīng)用于無類型的代碼庫上。

總而言之,移除 jQuery 意味著我們可以更多地依賴 Web 標(biāo)準(zhǔn),讓 MDN Web 文檔成為前端開發(fā)人員事實(shí)上的默認(rèn)文檔,在將來可以維護(hù)更具彈性的代碼,并且可以將 30KB 的依賴從我們的捆綁包中移除,加快頁面的加載速度和 JavaScript 的執(zhí)行速度。

自定義元素

近年來一直在炒作一項(xiàng)新技術(shù),即自定義元素——瀏覽器原生的組件庫,這意味著用戶無需下載、解析和編譯額外的字節(jié)。

從 2014 年開始,我們已經(jīng)基于 v0 規(guī)范創(chuàng)建了一些自定義元素。然而,由于標(biāo)準(zhǔn)仍然在不斷變化,我們并沒有投入太多精力。直到 2017 年,Web Components v1 規(guī)范發(fā)布,并且 Chrome 和 Safari 實(shí)現(xiàn)了這一規(guī)范,我們才開始更廣泛地采用自定義元素。

在移除 jQuery 期間,我們也在尋找用于提取自定義元素的模式。例如,我們將用于顯示模態(tài)對(duì)話框的 facebox 轉(zhuǎn)換為<details-dialog>元素(https://github.com/github/details-dialog-element)。

我們的漸進(jìn)式增強(qiáng)理念也延伸到了自定義元素上。這意味著我們將盡可能多地保留標(biāo)記內(nèi)容,然后再標(biāo)記上添加行為。例如,<local-time>默認(rèn)顯示原始時(shí)間戳,它被升級(jí)成可以將時(shí)間轉(zhuǎn)換為本地時(shí)區(qū),而對(duì)于<details-dialog>,當(dāng)它被嵌在 <details>元素中時(shí),可以在不使用 JavaScript 的情況下具備交互性,它被升級(jí)成具有輔助增強(qiáng)功能。

關(guān)于關(guān)于jQuery的簡(jiǎn)介及發(fā)展分析就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

文章名稱:關(guān)于jQuery的簡(jiǎn)介及發(fā)展分析-創(chuàng)新互聯(lián)
本文URL:http://www.muchs.cn/article14/pisge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站外貿(mào)網(wǎng)站建設(shè)、虛擬主機(jī)、面包屑導(dǎo)航網(wǎng)站維護(hù)外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司