轉帖|行業資訊|編輯:龔雪|2016-07-04 10:19:59.000|閱讀 198 次
概述:jQuery團隊終于揭開了等待已久的3.0發布版的神秘面紗,帶來了全新的、精簡過的選項,以及新的主要功能、改進和bug的修復。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
jQuery團隊終于揭開了等待已久的3.0發布版的神秘面紗,帶來了全新的、精簡過的選項,以及新的主要功能、改進和bug的修復。
在的博客帖中,jQuery團隊的核心成員Timmy Willison宣布了jQuery的“精簡編譯”,其中說道:“有時你不需要ajax,或者你更偏向使用專門集中于ajax請求而開發的許多獨立庫之一。并且使用CSS和類處理來實現你的web動畫往往更加簡單。”
精簡版與標準版jQuery一起發布,其中不包括ajax、動畫效果和最近否決的代碼,對比完整版的30k,它以精簡的23.6k的大小呈現在大家面前。這個精簡版的jQuery包可以在。
自從2014年十月以來的預測,在3.0這個重要里程碑的新功能中還有一個更新過的jQuery.Deferred對象。現在它兼容Promises/A+和ES2015 Promises,Willison還解釋,在3.0版本中“在.then()回調中拋出的異常現在變成了一個rejection類型的值。之前,異常會一直向上拋出,中止了回調的執行。任何被defer的部分,如果依賴于一個拋出異常的、被defer的部分的解決,那它將永遠不會被執行。”
Willison還做了一個很重要的區分,使用rejection回調處理被捕獲的異常現在描述性更強了,這使開發者們可以使用promises時總是添加至少一個rejection回調。
3.0發布版中的其他改進還包括在展示動畫效果、展示更平滑的動畫和減少移動端電量損耗的時候使用requestAnimationFrameAPI。當Willison解釋之前在代碼的兼容性問題后他們提出而又否決這次更新時,他說他們的團隊希望能通過在瀏覽器標簽頁離開視圖時延遲動畫解決這個問題。
除了其他的大量修改,jQuery 3.0現在帶來了正式的對jQuery.ready中promise的支持。然而人們注意到jQuery.ready自從jQuery 1.8開始就作為類似promise對象的消耗品,在文檔中它通過jQuery.when或原生的Promise.resolve()給予支持。一個典型的使用例子如下:
$.when( $.ready, $.getScript("optional.js") ).then(function() { // the document is ready and optional.js has loaded/run }).catch( function() { // an error occurred })
這次發布版還帶來了一些突破性的變化,盡管它本來是企圖盡可能向后兼容的。在jQuery核心中,jQuery是使用"use strict"命令來編譯的,雖然人們能夠注意到大部分已存在的代碼不應該產生任何變化,因為在Strict模式中它不允許執行。
其他的突破性變化包括去除了jQuery核心中已否決的.context和.selector屬性,這也是一個對數據名的改變。從3.0開始,所有的數據名都以駝峰式命名法進行存儲(clickCount),而不是使用串聯命名法(click-count)。
欲了解更多3.0版本中更新和突破性變化的信息,開發者們可以查看。
英文原文:
本文來源:InfoQ
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn