JQuery 4.0震撼發布:這是復興還是告別?
jQuery,這個曾經主宰前端開發的JavaScript框架,最近發布了4.0 beta版本,標志著它進入了一個新的階段。盡管新的框架和庫層出不窮,jQuery憑借其廣泛的功能積累和龐大的用戶基礎,在前端領域依然保持著一席之地。
那么,曾經的前端霸主jQuery,今天的地位如何呢?本文將分享jQuery 4.0更新的亮點,回顧其輝煌的發展歷程,并討論jQuery的未來前景。
jQuery 4.0更新亮點
經過慎重準備,jQuery團隊終于發布了v4.0的beta版本!這個版本帶來了錯誤修復、性能提升和顯著變化,最值得注意的是放棄了對IE<11的支持,以更好地適應現代web標準。jQuery團隊長期尋求的重大改進在jQuery 4.0.0 beta中得以實現,包括清除多余代碼、淘汰已廢棄的API、移除未發布的內部參數,以及簡化過于復雜的“魔法”行為。
讓我們來看看4.0版本帶來了哪些更新。
向IE<11說再見
隨著技術的進步,jQuery 4.0決定停止支持IE10及更早版本的瀏覽器。我們計劃在未來的版本中(jQuery 5.0)進一步縮小瀏覽器支持范圍。這次更新移除了專為舊版本IE設計的代碼,使代碼庫更加高效。我們也停止了對其他過時瀏覽器的支持,如Edge Legacy、iOS和Firefox的舊版本,以及原生Android瀏覽器。如果您需要支持這些瀏覽器,可以使用jQuery 3.x。
移除已廢棄的API
多個版本中已廢棄的幾個函數終于在主版本中走到了盡頭。這些函數要么是為內部使用而設計,要么對于所有支持的瀏覽器都有原生的替代方案。具體包括:
- jQuery.cssNumber
- jQuery.cssProps
- jQuery.isArray
- jQuery.parseJSON
- jQuery.nodeName
- jQuery.isFunction
- jQuery.isWindow
- jQuery.camelCase
- jQuery.type
- jQuery.now
- jQuery.isNumeric
- jQuery.trim
- jQuery.fx.interval
如果您的代碼使用了這些函數,請務必更新它,以使用相應的原生方法或替代函數,確保與jQuery的最新版本兼容。
其他變化
- 移除特定方法:jQuery 4.0移除了一些設計用于內部使用的數組方法,包括push、sort和splice。開發者應更新他們的代碼,以使用標準數組方法代替。
- 事件順序變化:jQuery 4.0中focusin和focusout事件的處理順序發生了變化,以符合最新的W3C規范。這可能會影響依賴舊順序的插件或代碼。新的順序是:blur -> focusout -> focus -> focusin。
- jQuery.ajax添加FormData支持:jQuery.ajax現在可以自動處理二進制數據,包括FormData,無需額外配置。
- 移除JSONP自動轉換:jQuery 4.0不再自動將dataType:“json”和提供的回調函數轉換為JSONP請求。現在推薦使用CORS進行跨域交互,因為它在jQuery 4.0支持的所有瀏覽器中都有效。這有助于避免在不知情的情況下執行來自遠程域的代碼。
jQuery源代碼遷移到ES模塊
jQuery主分支的源代碼已從AMD遷移到ES模塊。盡管jQuery的源代碼一直在npm和GitHub上與發布版本一起提供,但之前沒有使用RequireJS無法直接作為模塊導入。現在,jQuery使用Rollup進行打包,所有測試分別在ES模塊上運行。
受信任類型和CSP支持
jQuery 4.0現在支持受信任類型,允許使用包裝在TrustedHTML中的HTML作為jQuery操作方法的輸入,同時遵守內容安全策略的require-trusted-types-for指令。
此外,為了避免CSP錯誤,jQuery 4.0已將大多數異步腳本請求從使用XHR改為使用<script>標簽。XHR僅在特定情況下繼續使用(例如使用“headers”選項時)。對于需要支持IE11的情況,建議使用主構建版本或添加原生Promises的polyfill。
更精簡的構建版本
jQuery 4.0的精簡構建版本經過優化,移除了Deferreds和Callbacks,進一步減小了它們的大小(壓縮到不到20k)。雖然Deferreds提供了一些原生Promises沒有的功能,但在大多數情況下,可以代替使用原生Promises。對于需要支持IE11的用戶,建議使用主構建版本。
jQuery發展歷史
什么是jQuery?
jQuery是一個快速、簡潔的JavaScript框架。它最初發布是為了簡化JavaScript編程并提供跨瀏覽器兼容性。在web開發的早期,不同瀏覽器在JavaScript實現上有顯著差異,這使得編寫跨瀏覽器的JavaScript代碼非常困難。jQuery旨在通過提供一致的API,使JavaScript編程簡化,更容易開發跨瀏覽器代碼。
jQuery的出現
jQuery的歷史可以追溯到2005年,當時John Resig開始開發一個名為“Behaviour”的庫,旨在簡化JavaScript編程。然而,他發現這個庫太大且過于復雜,于是決定開發一個更輕巧、用戶友好的JavaScript庫,這就是jQuery的原型。
2006年1月,John Resig宣布發布了他的庫,命名為jQuery。初始版本已經支持CSS選擇器、事件處理和AJAX交互,其獨特的鏈式語法和簡潔的多用途接口受到了廣泛贊譽。隨著版本的迭代,jQuery逐漸增加了對動畫效果、插件擴展的支持,使得開發者在web開發中使用JavaScript變得更加容易。
jQuery的影響
jQuery對web開發產生了重大影響,使得JavaScript編程對開發者來說更加可接近,并顯著提高了跨瀏覽器的兼容性。許多網站和web應用仍然依賴于jQuery,因為它的易用性、廣泛的插件生態系統和對老舊瀏覽器的兼容性。
jQuery還有相關性嗎?
隨著React、Angular和Vue.js等現代JavaScript框架和庫的崛起,一些開發者質疑jQuery在現代web開發中的相關性。然而,出于幾個原因,jQuery在web開發中仍然有一席之地:
- 遺留瀏覽器支持:許多網站和web應用仍需要支持如IE11這樣的老舊瀏覽器,這些瀏覽器缺乏對現代JavaScript特性的支持。jQuery提供了一個橋梁,允許開發者編寫在廣泛的瀏覽器版本中都能工作的代碼。
- 易用性:jQuery的簡潔語法和廣泛的文檔使得開發者易于學習和使用。對于web開發新手或那些更喜歡簡單直接的JavaScript編程方法的開發者來說,jQuery仍然是一個吸引人的選擇。
- 插件生態系統:jQuery的廣泛插件生態系統為開發者提供了大量預構建的解決方案,用于常見的web開發任務,如表單驗證、圖片滑塊和AJAX交互。這個生態系統通過允許開發者利用現有解決方案而不是重新發明輪子,節省了開發者的時間和精力。
- 與其他框架的集成:許多現代JavaScript框架和庫,如React和Vue.js,可以與jQuery共存,允許開發者在利用其他框架的優勢進行應用開發的同時,使用jQuery完成特定任務。這種靈活性使得jQuery即使在現代web開發環境中也是開發者工具箱中的寶貴工具。
盡管jQuery可能不再是前端開發領域的主導力量,但它在現代web開發中仍然有其位置,因為它對遺留瀏覽器的支持、易用性、廣泛的插件生態系統和與其他框架的集成。隨著jQuery 4.0 beta的發布,jQuery團隊展示了他們保持jQuery在不斷發展的web開發生態系統中相關性的承諾。那么,你認為jQuery還有存在的意義嗎?