jQuery 3.0十大新特性
jQuery 3.0在日前發(fā)布了最終的全新版本。從2014年10月,jQuery團(tuán)隊(duì)對(duì)這個(gè)主要大版本進(jìn)行維護(hù)開(kāi)始,web開(kāi)發(fā)者社區(qū)便一直在期待著這一刻的到來(lái),終于在2016年6月他們迎來(lái)了這一個(gè)最終版。
通過(guò)jQuery 3.0的版本更新說(shuō)明 ,我們看到了一個(gè)保持著向后兼容的更輕便,更快速的jQuery。在本文中,我們將介紹一些令人眼前一亮的jQuery 3.0全新特性。
開(kāi)始前的說(shuō)明
如果你想要下載jQuery 3.0進(jìn)行親自實(shí)驗(yàn),可以通過(guò) 該頁(yè)面 進(jìn)行下載。另外, 升級(jí)指南 和 源代碼 也值得你一看。
如果你想要測(cè)試一下你的項(xiàng)目如何在jQuery 3.0中工作的,你可以嘗試通過(guò)jQuery遷移插件 來(lái)識(shí)別代碼的兼容性問(wèn)題,你也可以查看 jQuery未來(lái)發(fā)展的時(shí)間表 。
1. 移除舊的IE工作區(qū)
新的最終版最主要的目標(biāo)是更加快速,更加時(shí)尚,因此,那些支持早于IE9版本的相關(guān)技術(shù)與工作區(qū)都被移除了。這意味著如果你想要或者需要支持IE6-8,你必須用回1.12版本,因?yàn)樯踔潦?.X版本都無(wú)法完整支持早于IE9的瀏覽器。查看完整的瀏覽器支持方案>>
注意:在jQuery 3中還棄用了一些其它的功能。截止到2016年6月,升級(jí)指南還沒(méi)有提供一個(gè)對(duì)于棄用功能的分組整理。因此,你如果想要了解棄用功能,可以通過(guò)ctrl+f鍵來(lái)進(jìn)行搜索。
2. jQuery 3.0運(yùn)行在Strict Mode下
大多數(shù)支持jQuery 3的瀏覽器都支持strict mode,而在本次更新中對(duì)此進(jìn)行了規(guī)定。
雖然jQuery 3是寫(xiě)在strict mode中的,但是你需要了解的是你的代碼并不需要運(yùn)行在strict mode中,因此如果你想要把以前的代碼遷移到j(luò)Query 3,你不需要對(duì)已存在的jQuery代碼進(jìn)行重寫(xiě)。Strict和non-strict mode的JavaScript代碼可以和諧共存。
這里有一些例外:某些版本的ASP.NET,因?yàn)閟trict mode的緣故,無(wú)法與jQuery 3兼容,如果你的代碼涉及到了ASP.NET,你可以查看 關(guān)于strict mode的細(xì)節(jié) 。
3. 引進(jìn)for...of循環(huán)
jQuery 3支持for...of 語(yǔ)句,這是由ECMAScript 6 中新引進(jìn)的一種for循環(huán)語(yǔ)句。這提供了對(duì) Arrays , Maps 和 Sets 這樣的可迭代對(duì)象一種更直接的遍歷方法。
在jQuery中,for...of循環(huán)可以取代以前的 $.each(...) 語(yǔ)法,并且更容易通過(guò)jQuery的元素 集合 進(jìn)行循環(huán)。
注意:for...of只能在支持ECMAScript 6的環(huán)境下或者使用Babel這樣的JavaScript編譯器下工作。
4. 動(dòng)畫(huà)方面采用新的API
jQuery 3使用requestAnimationFrame() API來(lái)執(zhí)行動(dòng)畫(huà),使動(dòng)畫(huà)運(yùn)行得更加順暢、快速。新的API只用于支持它的瀏覽器,對(duì)于那些更老的瀏覽器(如IE9)jQuery使用先前的API來(lái)作為顯示動(dòng)畫(huà)的后備方案。
RequestAnimationFrame已經(jīng)推出一段時(shí)間了,如果你對(duì)如何使用它以及什么時(shí)候使用它感興趣,CSS Tricks上有一篇很好的 文章 可供你閱讀。
5. 對(duì)包含特殊含義的字符串提供轉(zhuǎn)義的新方法
新的jQuery.escapeSelector()提供了對(duì)在CSS中存在特殊含義的字符串或字符進(jìn)行轉(zhuǎn)義的方法,該方法可使這些字符串或字符能夠繼續(xù)用于jQuery選擇器中,而無(wú)需對(duì)那些無(wú)法進(jìn)行正確理解的JavaScript解釋器進(jìn)行轉(zhuǎn)義。
這個(gè) 示例 可以讓你更好的了解這個(gè)全新的方法:
舉個(gè)例子,頁(yè)面中某個(gè)ID為 “abc.def” 的元素由于選擇器將其解析為 ID為“abc”且包含一個(gè)名為“def”的類(lèi)的對(duì)象, 而無(wú)法被$( "#abc.def" )選定。但是它可以由 $( "#" + $.escapeSelector( "abc.def" ) )來(lái)進(jìn)行選定。
我無(wú)法確定發(fā)生中情況的頻率,但是假如你碰到過(guò)這種類(lèi)似的情況,這無(wú)疑給了你一個(gè)解決該問(wèn)題的簡(jiǎn)單方法。
6. 類(lèi)操作方法支持SVG
不幸的是,jQuery 3現(xiàn)在還無(wú)法完整的支持SVG,但是對(duì)于 操作CSS類(lèi)名稱 的jQuery方法,如 .addClass() 和 .hasClass() 現(xiàn)在可以將SVG文檔作為目標(biāo)。這意味著你可以修改(添加、刪除、切換)或者查找SVG(可縮放矢量圖形)下的jQuery類(lèi),然后使用CSS的類(lèi)樣式。( 相關(guān)閱讀:Styling Scalable Vector Graphic (SVG) with CSS )
7. 延遲對(duì)象現(xiàn)在與JS Promises兼容
JavaScript Promises ,用于異步計(jì)算的對(duì)象,現(xiàn)在在ECMAScript 6中已經(jīng)被標(biāo)準(zhǔn)化;它們的運(yùn)行狀況和特性的詳細(xì)說(shuō)明參見(jiàn) Promises/A+ 標(biāo)準(zhǔn)。
在jQuery 3中, 延遲對(duì)象 已經(jīng)與新的Promises/A+標(biāo)準(zhǔn)相兼容,延遲對(duì)象已經(jīng)成為讓創(chuàng)建回調(diào)隊(duì)列成為可能的可鏈對(duì)象(chainable objects)。
新的特性改變了異步回調(diào)函數(shù)執(zhí)行過(guò)程,Promises允許開(kāi)發(fā)者編寫(xiě)在邏輯上與同步代碼更接近的異步代碼。
查看升級(jí)指南的 代碼示例 ,或者查看關(guān)于JavaScript Promises基礎(chǔ)的 Scotch.io教程 可以讓你了解更多的信息。
8. jQuery.when()對(duì)于多種參數(shù)的不同解讀
$.when() 提供了執(zhí)行回調(diào)函數(shù)的一種方法,它成為了jQuery 1.5之后的一部分。這個(gè)方法非常靈活,它適用于零參數(shù),也適用于一個(gè)或者多個(gè)作為參數(shù)的對(duì)象。
jQuery 3改變了當(dāng)包含 $.then() 方法時(shí)對(duì)$.when()中參數(shù)的解讀方法,你可以對(duì)$.when()進(jìn)行額外的參數(shù)回調(diào)。
在jQuery 3中,如果你在$.when()中的then()方法內(nèi)增加一個(gè)輸入?yún)?shù),該參數(shù)將會(huì)被解釋成一個(gè)可與 Promise 兼容的 "thenable" 。
這意味著 $.when方法能夠接收更加寬廣的輸入范圍,比如原生的 ES6 Promises 和 Bluebird Promises ,這也使得編寫(xiě)更復(fù)雜的異步回調(diào)成為了可能。
9. 新的顯示/隱藏邏輯
為了增加響應(yīng)式設(shè)計(jì)的兼容性,與元素顯示和隱藏的代碼在jQuery 3中進(jìn)行了更新。
從現(xiàn)在開(kāi)始, .show() 、 .hide() 和 .toggle() 方法將會(huì)以內(nèi)聯(lián)樣式為重點(diǎn)取代以前的計(jì)算樣式,這種方式能夠更尊重樣式列表的改變。
新的代碼盡可能的尊重樣式列表中所呈現(xiàn)的數(shù)值,這意味著CSS規(guī)則可根據(jù)事件(如設(shè)備重新定位和窗口尺寸調(diào)整)進(jìn)行動(dòng)態(tài)改變。
這個(gè)說(shuō)明文件申明了最重要的結(jié)果就是:
“作為結(jié)果,斷開(kāi)連接的元素除非指定了內(nèi)聯(lián)display: none,否則將不再認(rèn)定為是隱藏的。因此,在jQuery 3.0中,.toggle()不再對(duì)斷開(kāi)連接元素與已連接元素進(jìn)行區(qū)分。”
如果你想要更好的了解關(guān)于全新的顯示/隱藏邏輯,這個(gè) Github discussion 會(huì)對(duì)你有幫助。jQuery開(kāi)發(fā)者還發(fā)布了 Google文檔表 來(lái)展示在不同用例下新規(guī)則的運(yùn)轉(zhuǎn)。
10. 對(duì)于防止XSS攻擊的額外保護(hù)
jQuery 3增加一個(gè)額外的安全層用戶用于防備跨站點(diǎn)腳本(XSS)攻擊,它需要開(kāi)發(fā)者指定 $.ajax() 和 $.get() 方法中的選項(xiàng)為dataType: "script"。
換言之,如果你想要執(zhí)行跨站點(diǎn)的腳本請(qǐng)求,你必須在這些方法中作出這樣的聲明。
新的改變對(duì)于當(dāng)“遠(yuǎn)程站點(diǎn)傳遞非腳本內(nèi)容之后又提供有惡意腳本的服務(wù)內(nèi)容”的情況是非常有效的。這個(gè)變化不會(huì)影響$.getScript()方法,因?yàn)樗鞔_地設(shè)置了dataType: "script"選項(xiàng)。
以上所述是小編給大家介紹的jQuery 3.0十大新特性的相關(guān)知識(shí),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- Android圖片緩存原理、特性對(duì)比
- Android5.0新特性詳解之全新的動(dòng)畫(huà)
- Android5.0中Material Design的新特性
- Android新特性頁(yè)面之ViewPager拖拽到最后一頁(yè)再拖拽打開(kāi)其他Activity(三種方法)
- 深入理解Android組件間通信機(jī)制對(duì)面向?qū)ο筇匦缘挠绊懺斀?/a>
- JAVA8 十大新特性詳解
- PHP5各個(gè)版本的新功能和新特性總結(jié)
- 解析PHP 5.5 新特性
- .NET Framework 4.5新特性介紹
- Android 7.0 Nougat不得不知的11項(xiàng)新功能
相關(guān)文章
jQuery實(shí)現(xiàn)鼠標(biāo)經(jīng)過(guò)圖片預(yù)覽大圖效果
我們可以借助jQuery來(lái)實(shí)現(xiàn)一些很酷炫的效果,本篇為大家介紹下通過(guò)jQuery實(shí)現(xiàn)當(dāng)鼠標(biāo)經(jīng)過(guò)了圖片數(shù),圖片會(huì)放大進(jìn)行預(yù)覽大圖,需要的朋友可以參考下2014-04-04jQuery左右滾動(dòng)支持圖片放大縮略圖圖片輪播代碼分享
這篇文章主要介紹了jQuery左右滾動(dòng)支持圖片放大縮略圖圖片輪播效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2015-08-08jQuery實(shí)現(xiàn)CheckBox全選、全不選功能
這篇文章主要介紹了jQuery實(shí)現(xiàn)CheckBox全選、全不選功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-01-01jquery html添加元素/刪除元素操作實(shí)例詳解
這篇文章主要介紹了jquery html添加元素/刪除元素操作,結(jié)合實(shí)例形式詳細(xì)分析了jquery html添加元素/刪除元素相關(guān)函數(shù)功能、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-05-05JQuery擴(kuò)展插件Validate 1 基本使用方法并打包下載
Validate是用于B/S結(jié)構(gòu)客戶端驗(yàn)證用的JQuery擴(kuò)展插件,使用時(shí)需要引用兩個(gè)js文件2011-09-09jquery點(diǎn)擊實(shí)現(xiàn)升序降序圖標(biāo)切換
這篇文章主要為大家詳細(xì)介紹了jquery點(diǎn)擊實(shí)現(xiàn)升序降序圖標(biāo)切換,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07前端html中jQuery實(shí)現(xiàn)對(duì)文本的搜索功能并把搜索相關(guān)內(nèi)容顯示出來(lái)
這篇文章主要介紹了前端html中jQuery實(shí)現(xiàn)對(duì)文本的搜索功能并把搜索相關(guān)內(nèi)容顯示出來(lái),在項(xiàng)目中經(jīng)常會(huì)遇到,今天小編把實(shí)例代碼分享給大家,需要的朋友可以參考下2017-11-11