jQuery核心:1.9版本及未來展望
英文原文:jQuery Core: Version 1.9 and Beyond
為避免先入為主的錯誤印象,請先看一下這篇 jQuery1.9及2.0問答集錦
正如上一篇博文的討論中所指出的那樣,jQuery 1.8 版本正在進行一次大掃除,想要把那些不夠安全的、缺乏效率的、用處不大的,以及帶有誤導的特性統統去掉。我們也開始著手進行一些工作,以使你們能夠構建自定義的版本來選擇不要加載庫中的某些部分,這樣就更加多快好省了。這些工作成果會使你們在享受到所需要的那部分 jQuery API 的同時,不必負擔那些你產不需要的部分所帶來的成本。
既然我們現在已經掃凈一屋,是時候來展望何以掃天下了。只有一件事會對我們的未來愿景形成障礙,即舊版本的瀏覽器這個幽靈。Internet Explorer 的6、7、8版本——統稱舊版本的 IE——在過去十年里一直是 web 開發者的眼中釘肉中刺。總體情況是,這些已經過時的的瀏覽器仍然會占到某些網站三分之一的訪問用戶量。這可是一大批用戶——這部分人群仍然需要 web 站點所提供的信息、服務和產品。對于眾多采用了 jQuery 的 web 站點而言,忽略這么大的一群用戶是不現實、也不經濟的。
jQuery 所考慮的正是要解決瀏覽器差異的問題,所以我們不會放棄該設計理念的核心,把幾百萬(無論出于什么動機)仍然在使用舊版本的 IE 的 Internet 用戶甩手不管。但同時,我們也想要與時俱進,充分利用最新瀏覽器的長處,尤其是要關注方興未艾的移動市場。
未來之路
jQuery 1.8 會在一個月之內發布。以下是我們對于接下來兩個版本的 jQuery 的一些考慮,以及它們的發布時間:
- jQuery 1.9(2013年初):我們將去除1.8版本中已經過時的許多接口,其中一些將作為 jQuery 項目支持的插件或替代 API 提供出來。IE 6/7/8將像現在一樣得到支持。
- jQuery 1.9.x(在 2013年及以后進行):此版本將持續維護,以適應任何回歸測試結果、新的瀏覽器缺陷等。
- jQuery 2.0(2013年初,1.9發布以后不久就會發布):此版本會支持和 jQuery 相同的 API,但是將去除對于 IE 6/7/8中一些古怪特性的支持,例如給人添堵的事件模型、IE7中的“attroperties”,以及(IE 解析專用的)HTML5的 shims 庫等。
我們的目標是讓1.9和2.0版本達到能夠透過它們共同支持的 API 互換的程度。當2.0釋出的時候,關于到底使用哪個版本,您要做的決定十分簡單:如果您需要支持 IE 6/7/8,就選擇1.9;否則,您可以在1.9或2.0中任選其一。
問答集錦
如果 jQuery 1.9和2.0基本上 API是一樣的,那憑什么說2.0更好呢? 答案是更小的尺寸、更佳的性能,并且沒有因為需要支持舊版本的 IE 所帶來的問題。我們期望可以對$選擇符的異常處理做一些改進。2.0中還實現了 Deferred 對象,這是另外一個例子,如果要支持舊版本的 IE 的話,我們就無法做到這一點。
我的網站上仍然有許多訪問用戶在使用 IE 7/8,但我仍然想使用 jQuery 2.0。可以么? 如果您的網站需要提供對舊版本的 IE 的支持,并且我們預計大多數網站在至少一兩年內還是需要提供此支持的,如果是這樣,您可以使用 IE 的條件式注釋以實現僅讓那些使用舊的 IE 的訪問用戶包含1.9版本:
<!--[if lt IE 9]><script src="jquery-1.9.0.js"></script>
<![endif]-->
<!--[if gte IE 9]><!-->
<script src="jquery-2.0.0.js"><</script>
<!--<![endif]--></pre> </div>
為什么不干脆為 jQuery 2.0做個“舊版本的 IE插件”? 為舊式 IE 所寫的特殊處理代碼是遍布整個 jQuery 庫的。如果要重構全部代碼來提供足夠有力的掛鉤,使得對于舊版本的 IE 的支持可以實現為一個插件的話,這樣的代碼對于最新的瀏覽器來說就會過于復雜了。還有,使用公用 CDN 的 jQuery 并且要支持舊版本的 IE 的開發者就必須包含兩個文件(jQuery 2.0 及舊版本的 IE 插件),而不是一個了。
jQuery 2.0發布以后,1.9版本將往何處去? 與過去不同的是,我們將持續為1.9版本修正缺陷(并作次要版本發布)。由于剛剛對1.8和1.9版本做過一次大的清理,我們不打算在未來再為它們加上一大堆新的 API。相反,我們寧愿在適當的時候,以和兩個版本都兼容的插件的形式來添加新的功能。所以,如果你還要繼續使用1.9版本,不用因此產生自己已經落伍了的感覺。
所以 jQuery 2.0的核心理念是為移動設備而打造的? 并非如此。盡管 jQuery 2.0 對于 HTML 移動應用程序而言是個很趁手的工具,包括那些使用 jQuery Mobile 的開發者也會這么認為,但它并不是一個僅支持 Webkit 的庫,它的目標平臺也不僅是 iOS 和 Android。除了移動瀏覽器以外,2.0版本會支持(并且會在這些平臺上測試!)最新版本的桌面版 Internet Explorer、Opera、Firefox、Safari,以及 Chrome。
jQuery 2.0會縮小/變快多少? 在我們做出來,或至少到我們接近完成之前,這個問題我們回答不了。但可以肯定的是,2.0版本臨時發布時,我們會告訴你更多內容。更好的做法是,你可以在 Beta 版本釋出時試用,這樣你就能眼見為實了!
來自: www.w3ctech.com本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!