輕巧、快速且功能豐富的JavaScript函式庫jQuery,在2016年發布3.0正式版之後,終於在2024年迎來jQuery 4.0.0 Beta版本。經過了這麼多年的開發,jQuery 4.0.0有許多重大更改,包括取消IE 10以前的支援,並且刪除已棄用的API,以及放棄支援一些過於複雜行為。同時,還新增支援可信類別(Trusted Type),強化安全性防禦跨站腳本(XSS)攻擊。

jQuery 4.0不再支援IE 10以及更早版本,官方解釋,他們計畫分階段取消支援,會在jQuery 5.0進一步取消對IE 11的支援。目前官方先刪除專門支援IE 11之前版本的程式碼,而這樣的修剪也減少867 gzip位元組大小,進一步加快終端用戶載入頁面的時間。jQuery同時也放棄支援其他老舊的瀏覽器,包括Edge Legacy、iOS <11、Firefox <65和Android瀏覽器,如果開發者仍需要支援這些瀏覽器,就必須繼續使用jQuery 3.x版本。

許多函式已經在之前版本中被棄用,而在jQuery 4.0這個主要版本,官方也一併進行清理,官方指出,jQuery 4.0刪除的函式多是內部函式,或是已經在瀏覽器中具有原生等效功能的函式,諸如jQuery.trim()、jQuery.isArray()與jQuery.isFunction()等13個。

jQuery開發團隊還進行了一項重要變更,便是移除了push、sort和splice方法。jQuery原型(Prototype)擁有與其他jQuery函式不同行為的陣列方法,並且始終僅供內部使用,jQuery開發團隊現在決定不再透過jQuery原型來使用這些方法,而是直接使用陣列函式。這樣的變更讓jQuery更符合現代JavaScript標準和最佳實踐,也讓函式庫本身更加精簡。

而jQuery 4.0在處理焦點事件的順序也有變化,這些焦點事件分別為focusin、focusout、focus和blur。這些焦點事件長期在各瀏覽器中執行順序不一致,直到最近各瀏覽器終於在事件順序上取得共識,但是這個順序與jQuery過去所選擇的順序不同,現在jQuery 4.0不再覆蓋瀏覽器原生行為,除了IE之外,所有瀏覽器都會遵循當前W3C規範,順序為blur、focusout、focus和focusin。

jQuery.ajax新增對二進位資料FormData的支援。過去二進位資料並不被視為已知的資料類型,而會被轉換成字串,這種行為需要停用資料轉換並以手動處理,不過,現在開發團隊決定讓這個過程自動化。加入對FormData的支援,代表開發者可以在使用jQuery.ajax進行網路請求時,直接傳送表單資料和其他二進位檔案,不需要進行額外的處理和轉換。這項變更在技術上是一個重大變化,官方認為,此行為更接近開發者預期。

jQuery 4.0加入了對可信類別的支援,而這是一個重要的安全性強化功能。可信類別為一項網頁安全標準,透過限制網站可以執行的腳本防止跨站腳本攻擊,在支援可信類別的瀏覽器中,開發者可以自訂一組可信類別,並將不可信的輸入轉換為可信類別確保網站安全性。

另外,jQuery 4.0還改進對內容安全政策(CSP)的支援。雖然一些AJAX請求已經透過使用<script>標籤維護諸如跨網域等屬性,但jQuery 4.0現在更傾向在大多數非同步腳本請求中使用<script>標籤,避免因為使用行內腳本(Inline Scripts)而導致CSP錯誤。

從jQuery 3.0或更高版本升級到jQuery 4.0預期不會有相容性問題,開發者也可以使用官方發布的jQuery Migrate外掛工具,辨識程式碼相容性問題。jQuery 4.0更新了精簡版本(Slim Build),藉由移除非同步程式開發機制Deferreds和回呼列表管理功能Callbacks,使體積現在小於20 KB。

熱門新聞

Advertisement