jQuery已“死”?為清除技術債,我們刪掉了前端所有jQuery依賴

作者 | 褚杏娟

近期,英國公共部門資訊網站 GOV。UK 前端開發主管 Matt Hobbs 宣佈該公司刪除了 jQuery 作為所有前端應用程式的依賴項,這意味著“在所有 13 個 FE 應用程式中,JS 大小減少了 32 KB(31% ~49% 之間)”。

一些關鍵指標得到最佳化

Matt 也在推特上分享了幾組資料,說明了在刪除 jQuery 後一些關鍵指標得到了最佳化。

移除頁面標籤限制並檢視所有頁面 RUM 資料, 75% 使用者的頁面都有類似的下降:

jQuery已“死”?為清除技術債,我們刪掉了前端所有jQuery依賴

在 75% 的頁面中僅檢查 Android 使用者,可以看到 JS 長任務改進了 7%:

jQuery已“死”?為清除技術債,我們刪掉了前端所有jQuery依賴

50% 使用者的移動裝置上的 JS Long Tasks 有 10% 的改進:

jQuery已“死”?為清除技術債,我們刪掉了前端所有jQuery依賴

而對於 95% 使用者,阻塞時間則減少了 10% :

jQuery已“死”?為清除技術債,我們刪掉了前端所有jQuery依賴

“這些使用者會遇到嚴重不利的網路和裝置條件,每一次效能提升對他們來說尤其重要。”Matt 說道。

根據 Matt 說法,刪除 jQuery 的本意是清理技術債。“它最初是為了支援瀏覽器而存在的,但隨著時間的推移,情況發生了變化,所以 bits 可以被刪除。我想在這之後會重新評估,看看還有什麼是不再需要的。” Matt 表示。

“大多數事情都不再需要 jQuery 了”

jQuery 是一套跨瀏覽器的 JavaScript 庫,可以簡化 HTML 與 JavaScript 之間的操作。截至 2021 年,有將近 84% 的移動頁面使用 jQuery。jQuery 是最受歡迎的 JavaScript 庫之一,它的一些操作已經反映在標準 Web API 中。

JQuery 創建於 2006 年,主要是為了幫助開發者處理當時瀏覽器的不足。當時谷歌瀏覽器還未流行,人們飽受 Internet Explorer 之苦。而 JQuery 開發者可以使用 CSS 選擇器和函式可以輕鬆地遍歷和操作 DOM,

此外,JQuery 還提供了一些開箱即用的函式來做動畫 DOM 元素,而無需弄亂 CSS。在沒有 jQuery 之前發出 AJAX 請求很麻煩,但使用 JQuery 只需幾行程式碼即可完成。JQuery 提供了一個可以在大多數瀏覽器上工作的 API,這在當時使用 JavaScript 是很難實現的。

但在過去的幾年裡,JavaScript 已經成熟了很多,它支援很多新的 API,其社群也構建了很多庫來填補 jQuery 可能留下的任何空白。

現在,開發者幾乎可以在原生 JavaScript 中做任何 jQuery 可以做的事情。例如,可以使用帶有 querySelector 和 querySelectorAll 的 CSS 選擇器語法來選擇元素,使用 classList API 在元素上新增、刪除和切換類,使用 addEventListener 將事件處理程式附加到 DOM 元素和視窗等等。

同時隨著 Angular、Vue 和 React 等框架的出現和流行,一直未有特別創新的 jQuery 更顯“老態”。“對我來說,他們 (jQuery ) 就像是那個隨著時代變遷沒有更新知識的老灰鬍子。”有網友直言。

“現在,大多數事情都不再需要 jQuery 了。”有網友評論道,“我個人發現普通的 JS API 和 fetch 甚至比 jQuery 的東西更乾淨。人們仍然出於習慣使用 jQuery,是因為擺脫它需要做很多工作。”

jQuery 已“死”?

近幾年,業內對於“jQuery 是否已死”的討論一直沒停過。實際上,一些大型、資金充足的網站已經“用腳投票”,正在逐漸擺脫對 jQuery 的依賴。

2018 年,GitHub 宣佈從GitHub。com 的前端程式碼中完全移除了jQuery。“早期,jQuery 對我們意義重大。”GitHub 前端工程團隊在方式釋出的文章裡表示。“在 GitHub 的早期階段,jQuery 讓小型的開發團隊能夠快速進行原型設計並開發出新功能,而無需專門針對每個 Web 瀏覽器調整程式碼。”

但隨著 GitHub 成長為一家擁有數百名工程師的公司,jQuery 帶來的價值已經隨著時間的推移而下降。比如技術債會隨著依賴項的增多而增長,給企業帶來很大的維護成本。因此,GitHub 最終決定刪除 jQuery。不過,GitHub 沒有選擇另外的庫或框架,而是使用標準的瀏覽器 API 來實現。

不只 GitHub,Bootstrap 最新版本也將刪除 jQuery。

儘管被認為已經過時,但 jQuery 仍然是占主導地位的 JavaScript 庫。今天的開發人員可能沒有意識到在使用 jQuery,因為它被嵌入在了許多大型開源專案裡面,其中最著名的就是 WordPress。

“大多數網站都不需要複雜的開發框架,它們大多是具有一些動態行為的靜態網站,這種網站通常用 WordPress 編寫。jQuery 在這個場景下仍然很流行,因為它既簡單又有效,人們覺得沒必要停止使用它。”jQuery 開發者 Micha Gobiowski-Owczarek 在接受外媒採訪時說道。

Micha Gobiowski-Owczarek 也明確表示,為了不與瀏覽器衝突,jQuery 不會修改原生原型,而是用 jQuery 包裝器物件包裝 DOM 節點,每個操作都會建立一個新的包裝器物件。大多數情況下,這並不重要,但對於具有大量 DOM 操作的、非常複雜的應用程式來說,可能會成為一個問題。

未來的很長一段時間裡,jQuery 還繼續會是 WordPress 的一部分,因為它很難在不破壞向後相容性的情況下將它刪除。但一些改變已經發生,如 WordPress 建立的 Gutenberg 編輯器不依賴於 jQuery。

隨著時間的推移, WordPress 肯定會逐步更新技術,這是一個漸進的過程,jQuery 的最終去留也很難說。但不可否認的是,jQuery 為前端帶來了重大的影響。

參考連結:

https://thenewstack。io/why-outdated-jquery-is-still-the-dominant-javascript-library/

TAG: jQuerygithub瀏覽器JavaScriptapi