国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

jQuery 3.0十大新特性

2019-11-20 09:33:14
字體:
來源:轉載
供稿:網友

jQuery 3.0在日前發布了最終的全新版本。從2014年10月,jQuery團隊對這個主要大版本進行維護開始,web開發者社區便一直在期待著這一刻的到來,終于在2016年6月他們迎來了這一個最終版。

通過jQuery 3.0的版本更新說明 ,我們看到了一個保持著向后兼容的更輕便,更快速的jQuery。在本文中,我們將介紹一些令人眼前一亮的jQuery 3.0全新特性。

開始前的說明

如果你想要下載jQuery 3.0進行親自實驗,可以通過 該頁面 進行下載。另外, 升級指南 和 源代碼 也值得你一看。

如果你想要測試一下你的項目如何在jQuery 3.0中工作的,你可以嘗試通過jQuery遷移插件 來識別代碼的兼容性問題,你也可以查看 jQuery未來發展的時間表

1. 移除舊的IE工作區

新的最終版最主要的目標是更加快速,更加時尚,因此,那些支持早于IE9版本的相關技術與工作區都被移除了。這意味著如果你想要或者需要支持IE6-8,你必須用回1.12版本,因為甚至是2.X版本都無法完整支持早于IE9的瀏覽器。查看完整的瀏覽器支持方案>>

 

注意:在jQuery 3中還棄用了一些其它的功能。截止到2016年6月,升級指南還沒有提供一個對于棄用功能的分組整理。因此,你如果想要了解棄用功能,可以通過ctrl+f鍵來進行搜索。

 

2. jQuery 3.0運行在Strict Mode下

大多數支持jQuery 3的瀏覽器都支持strict mode,而在本次更新中對此進行了規定。

雖然jQuery 3是寫在strict mode中的,但是你需要了解的是你的代碼并不需要運行在strict mode中,因此如果你想要把以前的代碼遷移到jQuery 3,你不需要對已存在的jQuery代碼進行重寫。Strict和non-strict mode的JavaScript代碼可以和諧共存。

這里有一些例外:某些版本的ASP.NET,因為strict mode的緣故,無法與jQuery 3兼容,如果你的代碼涉及到了ASP.NET,你可以查看 關于strict mode的細節

3. 引進for...of循環

jQuery 3支持for...of 語句,這是由ECMAScript 6 中新引進的一種for循環語句。這提供了對 Arrays , Maps 和 Sets 這樣的可迭代對象一種更直接的遍歷方法。

在jQuery中,for...of循環可以取代以前的 $.each(...) 語法,并且更容易通過jQuery的元素 集合 進行循環。

 

注意:for...of只能在支持ECMAScript 6的環境下或者使用Babel這樣的JavaScript編譯器下工作。

4. 動畫方面采用新的API

jQuery 3使用requestAnimationFrame() API來執行動畫,使動畫運行得更加順暢、快速。新的API只用于支持它的瀏覽器,對于那些更老的瀏覽器(如IE9)jQuery使用先前的API來作為顯示動畫的后備方案。

RequestAnimationFrame已經推出一段時間了,如果你對如何使用它以及什么時候使用它感興趣,CSS Tricks上有一篇很好的 文章 可供你閱讀。

 

5. 對包含特殊含義的字符串提供轉義的新方法

新的jQuery.escapeSelector()提供了對在CSS中存在特殊含義的字符串或字符進行轉義的方法,該方法可使這些字符串或字符能夠繼續用于jQuery選擇器中,而無需對那些無法進行正確理解的JavaScript解釋器進行轉義。

這個 示例 可以讓你更好的了解這個全新的方法:

舉個例子,頁面中某個ID為 “abc.def” 的元素由于選擇器將其解析為 ID為“abc”且包含一個名為“def”的類的對象, 而無法被$( "#abc.def" )選定。但是它可以由 $( "#" + $.escapeSelector( "abc.def" ) )來進行選定。

我無法確定發生中情況的頻率,但是假如你碰到過這種類似的情況,這無疑給了你一個解決該問題的簡單方法。

6. 類操作方法支持SVG

不幸的是,jQuery 3現在還無法完整的支持SVG,但是對于 操作CSS類名稱 的jQuery方法,如 .addClass() 和 .hasClass() 現在可以將SVG文檔作為目標。這意味著你可以修改(添加、刪除、切換)或者查找SVG(可縮放矢量圖形)下的jQuery類,然后使用CSS的類樣式。( 相關閱讀:Styling Scalable Vector Graphic (SVG) with CSS

7. 延遲對象現在與JS Promises兼容

JavaScript Promises ,用于異步計算的對象,現在在ECMAScript 6中已經被標準化;它們的運行狀況和特性的詳細說明參見 Promises/A+ 標準。

 

在jQuery 3中, 延遲對象 已經與新的Promises/A+標準相兼容,延遲對象已經成為讓創建回調隊列成為可能的可鏈對象(chainable objects)。

新的特性改變了異步回調函數執行過程,Promises允許開發者編寫在邏輯上與同步代碼更接近的異步代碼。

查看升級指南的 代碼示例 ,或者查看關于JavaScript Promises基礎的 Scotch.io教程 可以讓你了解更多的信息。

8. jQuery.when()對于多種參數的不同解讀

$.when() 提供了執行回調函數的一種方法,它成為了jQuery 1.5之后的一部分。這個方法非常靈活,它適用于零參數,也適用于一個或者多個作為參數的對象。

jQuery 3改變了當包含 $.then() 方法時對$.when()中參數的解讀方法,你可以對$.when()進行額外的參數回調。

在jQuery 3中,如果你在$.when()中的then()方法內增加一個輸入參數,該參數將會被解釋成一個可與 Promise 兼容的 "thenable" 。

這意味著 $.when方法能夠接收更加寬廣的輸入范圍,比如原生的 ES6 Promises 和 Bluebird Promises ,這也使得編寫更復雜的異步回調成為了可能。

9. 新的顯示/隱藏邏輯

為了增加響應式設計的兼容性,與元素顯示和隱藏的代碼在jQuery 3中進行了更新。

從現在開始, .show() 、 .hide() 和 .toggle() 方法將會以內聯樣式為重點取代以前的計算樣式,這種方式能夠更尊重樣式列表的改變。

新的代碼盡可能的尊重樣式列表中所呈現的數值,這意味著CSS規則可根據事件(如設備重新定位和窗口尺寸調整)進行動態改變。

這個說明文件申明了最重要的結果就是:

“作為結果,斷開連接的元素除非指定了內聯display: none,否則將不再認定為是隱藏的。因此,在jQuery 3.0中,.toggle()不再對斷開連接元素與已連接元素進行區分。”

如果你想要更好的了解關于全新的顯示/隱藏邏輯,這個 Github discussion 會對你有幫助。jQuery開發者還發布了 Google文檔表 來展示在不同用例下新規則的運轉。

10. 對于防止XSS攻擊的額外保護

jQuery 3增加一個額外的安全層用戶用于防備跨站點腳本(XSS)攻擊,它需要開發者指定 $.ajax() 和 $.get() 方法中的選項為dataType: "script"。

換言之,如果你想要執行跨站點的腳本請求,你必須在這些方法中作出這樣的聲明。

 

新的改變對于當“遠程站點傳遞非腳本內容之后又提供有惡意腳本的服務內容”的情況是非常有效的。這個變化不會影響$.getScript()方法,因為它明確地設置了dataType: "script"選項。

以上所述是小編給大家介紹的jQuery 3.0十大新特性的相關知識,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 竹山县| 紫阳县| 巨野县| 曲麻莱县| 漳浦县| 沭阳县| 华蓥市| 齐齐哈尔市| 齐河县| 郁南县| 山丹县| 时尚| 阜康市| 平凉市| 安福县| 木兰县| 乐清市| 平顺县| 合江县| 扬中市| 吴江市| 玛沁县| 黄梅县| 宁强县| 望奎县| 沂南县| 赫章县| 平湖市| 涿鹿县| 河北省| 赣州市| 肥东县| 澄江县| 弋阳县| 万宁市| 中卫市| 滦南县| 隆尧县| 杭锦旗| 海兴县| 南川市|