20 年前開始寫網頁的人,應該沒人不認識 jQuery,而 jQuery 甚至是我心中的林志玲呢。年輕朋友可能不知道,我跟 jQuery 還有段特別淵源,17 年前的此時,我正在幫 MSDN 錄製人生的首部線上教學 - 邊做邊學 jQuery 系列 (MSDN 連結已失效,想參訪古蹟的朋友可由此入),為了做簡報設計範例,被迫對 jQuery 做了一次深度巡禮,自此深深愛上她的簡潔易用。更重要的是,在那個年代,寫任何網頁功能都得擔心程式會在 Chrome、Firefox、Safari,尤其是他 X 的 IE 上炸開,jQuery 是前端攻城獅們的救贖。沒想到 2026 年我居然還會為 jQuery 新版寫文,別有一番滋味。

thumbnail

jQuery 一度是建立 ASP.NET 專案時範本自帶的程式庫,Bootstrap 早期版本也依賴 jQuery 運作,那是 jQuery 的一段黃金歲月。後來各大前端框架如雨後春筍,knockout.js、AngularJS、Angular、React、Vue...,以 MVVM 概念及元件概念主導整個網頁甚至網站,比 jQuery 更適合開發複雜應用(當然學習門檻與成本也高)。而隨著 IE 被微軟送走,Edge 棄暗投明改用 Chromium 核心,瀏覽器再次回歸大一統,跨瀏覽器不再重要,加上 HTML5 規格演進,內建 API 方法日益完備強化,現代瀏覽器也都會自動更新緊追新規格,如今,用原生 JavaScript 便能完成前端的大小事(專業術語叫 Vanilla JavaScript 香草口味),前端圈甚至出現一股「鄙視 jQuery」的聲音。(延伸閱讀:從「鄙視 jQuery」聊起 -技術鄙視從何而來?)

我自己二十多年的前端歷程挺曲折:JavaScript -> jQuery -> knockout.js(卒) -> AngularJS(卒) -> Vue.js + jQuery。早年先後經歷 knockout.js 跟 AngularJS (1.0) 被放生,只覺得「玩前端的人是瘋子」(誤),框架一路換、工具一直改,大家還是學得不亦樂乎,無怨無悔,令老朽好生佩服。

做為全端工程師,寫網頁只佔工作一小部分不是終生志業,能投入學習的精力時間有限,加上資質普普年老體衰,完全跟不上前端框架兩年一改、三年一換,不斷砍掉重練的演化頻率(我八成最早被達爾文的那批),往往一個框架或工具才剛上手,社群便集體棄坑改用其他酷玩意兒了。(註:這些年腳步似乎有放緩,React、Vue、Angular 御三家確立多年,延伸閱讀:2025 年,前端框架還是 React、Angular、Vue 三分天下嗎?)

基於以上考量,我選了一條獨特的「輕前端」策略,在 MVC 網站用 AJAX + MVVM 寫前端,但不動用 TypeScript 及編譯工具,jQuery 沒有 MVVM,所以我在網頁用 <script src="..."> 載入 vue.js,直接用 JavaScript 寫邏輯。在不大幅異動 ASP.NET MVC / ASP.NET Core 網站結構與編譯發行的前題下,享用新前端技術的便利。(延伸閱讀:體驗美妙的輕前端 MVVM - Vue.js 入門教學資源)

現代瀏覽器內建的 JavaScript 功能十分完整且強大,過去慣用 jQuery 完成的工作,都能直接用原生 JavaScript 搞定(連 closest() 都有了說),沒有一定要用 jQuery 開局的理由。至於依賴 jQuery 的舊網頁,原本已有 jQuery 可用,我便會大方繼續享受 jQuery 的簡潔風格寫 Code。我的態度是:若無特別需求我用原生 JavaScript 寫(反正不懂可以問 AI) 不會特別引用 jQuery;若網頁已有 jQuery 可用,能用更簡潔的方式寫 Code,Sure, Of Course, Why Not?

這兩年,AI 輔助開發甚至丟給 AI 代工生 Code 成為主流,前端程式、HTML/CSS 又恰巧是 AI 最擅長的一塊,不管什麼奇怪需求都能幾秒內搞定。除非特別指定,AI 通常會優先用原生 JavaScript 完成,不依賴第三方程式庫。在此協作或代工模式,中小型網站應用對 jQuery 及其他前端框架的依賴大減,許多開發者不在乎甚至不知道網頁用了什麼程式庫。長此發展,jQuery 及其他前端框架的市佔將會下降,但至少在 2026 年初,jQuery 仍有高達 88.8% 的市佔率

長遠來看,jQuery 走向淍零的趨勢不會變,但前幾天 (2026-01-17) 剛滿 20 歲的 jQuery 正式發佈 4.0 版,又讓熟悉 jQuery 的老朋友們一陣激動,料想它退場的時機會再延後,加上目前的 Roadmap 已包含 jQuery 5.0,在 3.x 十年後推出的 4.0,預計將吸引一些不排斥 jQuery 的開發者(如我)繼續與其並肩再戰十年!

簡單看了 4.0,沒太多創新,更多的是配合時代演進的優化,移除已有原生 JavaScript API 的舊方法,取消對 IE 與舊瀏覽器的支援... 等等。重點整理如下:參考1 參考2

  • 支援可信類別(Trusted Types) 延伸閱讀:最新的 XSS 防禦:Trusted Types 與內建的 Sanitizer API by huli
  • 取消 IE10 支援 (jQuery 5.0 會再取消 IE11 支援)
    註:如需支援 iOS 11-、Firefox 65-、Android 瀏覽器、IE 10 等舊版瀏覽器,只能續用 jQuery 3.x
  • 4.0 正式移除多個內部停用或原生 JavaScript 已支援宣告棄用多時的 API,包含:jQuery.isArray, jQuery.parseJSON, jQuery.trim, jQuery.type, jQuery.now, jQuery.isNumeric, jQuery.isFunction, jQuery.isWindow, jQuery.camelCase, jQuery.nodeName, jQuery.cssNumber, jQuery.cssProps, jQuery.fx.interval 等。
  • 移除自訂的 push、sort、splice 等自訂陣列方法,改用 JavaScript 原生陣列 API
  • 調整事件順序為 blur -> focusout -> focus -> focusin 以求 W3C 規範一致
  • jQuery.ajax() 新增支援二進位資料 FormData,不再硬轉成字串,如此能改善處理效率,也更符合開發者預期

從我的觀點,jQuery 4.0 沒有太多革新,更多的是追求與時俱進,符合新時代瀏覽器與網頁規範,jQuery 彷彿在向老戰友們招手:「嘿,我準備好了,要一起再戰十年嗎?」~ YES, I DO!

thumbnail

thumbnail

Reflects on jQuery’s 20-year journey, its declining yet persistent relevance, personal front-end evolution, and how jQuery 4.0 modernizes by dropping legacy support while remaining a pragmatic option alongside vanilla JavaScript and light front-end approaches.


Comments

Be the first to post a comment

Post a comment